diff --git a/GeoLib/AnalyticalGeometry.cpp b/GeoLib/AnalyticalGeometry.cpp
index 5a97bff73f4f6fcd8dddc3ea250051e35e6b3093..e86063c3e48b683db94df0f3507195e7107e5e4d 100644
--- a/GeoLib/AnalyticalGeometry.cpp
+++ b/GeoLib/AnalyticalGeometry.cpp
@@ -40,7 +40,7 @@ Orientation getOrientation(const double& p0_x, const double& p0_y, const double&
 	double h1((p1_x - p0_x) * (p2_y - p0_y));
 	double h2((p2_x - p0_x) * (p1_y - p0_y));
 
-	double tol(sqrt( std::numeric_limits<double>::min()));
+	double tol(sqrt( std::numeric_limits<double>::epsilon()));
 	if (fabs(h1 - h2) <= tol * std::max(fabs(h1), fabs(h2)))
 		return COLLINEAR;
 	if (h1 - h2 > 0.0)
@@ -271,7 +271,7 @@ void getNewellPlane(const std::vector<GeoLib::Point*>& pnts, MathLib::Vector3 &p
 
 void rotatePointsToXY(MathLib::Vector3 &plane_normal, std::vector<GeoLib::Point*> &pnts)
 {
-	double small_value(sqrt( std::numeric_limits<double>::min()));
+	double small_value(sqrt( std::numeric_limits<double>::epsilon()));
 	if (fabs(plane_normal[0]) < small_value && fabs(plane_normal[1]) < small_value)
 		return;
 
@@ -288,7 +288,7 @@ void rotatePointsToXY(MathLib::Vector3 &plane_normal, std::vector<GeoLib::Point*
 
 void rotatePointsToXZ(MathLib::Vector3 &n, std::vector<GeoLib::Point*> &pnts)
 {
-	double small_value(sqrt( std::numeric_limits<double>::min()));
+	double small_value(sqrt( std::numeric_limits<double>::epsilon()));
 	if (fabs(n[0]) < small_value && fabs(n[1]) < small_value)
 		return;
 
diff --git a/GeoLib/EarClippingTriangulation.cpp b/GeoLib/EarClippingTriangulation.cpp
index 338750d7f4c3fdaac1b2dbb49b32ea47702dcd85..46bfc8eb37bcff9a68c67db1d516afb92df59835 100644
--- a/GeoLib/EarClippingTriangulation.cpp
+++ b/GeoLib/EarClippingTriangulation.cpp
@@ -87,7 +87,7 @@ void EarClippingTriangulation::rotate ()
 	// compute the plane normal
 	getNewellPlane(_pnts, plane_normal, d);
 
-	double tol (sqrt(std::numeric_limits<double>::min()));
+	double tol (sqrt(std::numeric_limits<double>::epsilon()));
 	if (fabs(plane_normal[0]) > tol || fabs(plane_normal[1]) > tol) {
 		// rotate copied points into x-y-plane
 		rotatePointsToXY(plane_normal, _pnts);
diff --git a/GeoLib/PointVec.h b/GeoLib/PointVec.h
index 14d09c02452137b4170a41c8a6d2f290838ca2bd..5d4a709e7880b40506fd4b314dbd63a730dd174a 100644
--- a/GeoLib/PointVec.h
+++ b/GeoLib/PointVec.h
@@ -117,7 +117,7 @@ private:
 	 * @param eps if the distance (measured in maximum norm) between points \f$p_i\f$ and \f$p_j\f$
 	 * is smaller than eps the points \f$p_i\f$ and \f$p_j\f$ are considered as equal.
 	 */
-	void makePntsUnique (std::vector<GeoLib::Point*>* pnt_vec, std::vector<std::size_t> &pnt_id_map, double eps = sqrt(std::numeric_limits<double>::min()));
+	void makePntsUnique (std::vector<GeoLib::Point*>* pnt_vec, std::vector<std::size_t> &pnt_id_map, double eps = sqrt(std::numeric_limits<double>::epsilon()));
 
 	/**
 	 * After the point set is modified (for example by makePntsUnique()) the mapping has to be corrected.
diff --git a/GeoLib/Polygon.cpp b/GeoLib/Polygon.cpp
index 77e2f12410dd8e9bf0f1043c40c336edbdef0083..10beec632dd32a94c27a1bd014ca93052f6d5d02 100644
--- a/GeoLib/Polygon.cpp
+++ b/GeoLib/Polygon.cpp
@@ -247,7 +247,7 @@ void Polygon::ensureCWOrientation ()
 	GeoLib::getNewellPlane(tmp_polygon_pnts, plane_normal, d);
 
 	// *** rotate if necessary
-	double tol (sqrt(std::numeric_limits<double>::min()));
+	double tol (sqrt(std::numeric_limits<double>::epsilon()));
 	if (fabs(plane_normal[0]) > tol || fabs(plane_normal[1]) > tol)
 		// rotate copied points into x-y-plane
 		GeoLib::rotatePointsToXY(plane_normal, tmp_polygon_pnts);
diff --git a/GeoLib/Polyline.cpp b/GeoLib/Polyline.cpp
index 40a423f93dadd5810742bd92166b00bb6bff8033..c67769d2ef185ed560c6295b5f5c662748df0800 100644
--- a/GeoLib/Polyline.cpp
+++ b/GeoLib/Polyline.cpp
@@ -349,11 +349,11 @@ Location Polyline::getLocationOfPoint (std::size_t k, GeoLib::Point const & pnt)
 	if (a[0] * a[0] + a[1] * a[1] < b[0] * b[0] + b[1] * b[1])
 		return Location::BEYOND;
 	if (MathLib::sqrDist (&pnt,
-	                      _ply_pnts[_ply_pnt_ids[k]]) < sqrt(std::numeric_limits<double>::min()))
+	                      _ply_pnts[_ply_pnt_ids[k]]) < sqrt(std::numeric_limits<double>::epsilon()))
 		return Location::SOURCE;
 	if (MathLib::sqrDist (&pnt,
 	                      _ply_pnts[_ply_pnt_ids[k + 1]]) <
-	    sqrt(std::numeric_limits<double>::min()))
+	    sqrt(std::numeric_limits<double>::epsilon()))
 		return Location::DESTINATION;
 	return Location::BETWEEN;
 }