diff --git a/GeoLib/Polyline.cpp b/GeoLib/Polyline.cpp
index 8b87211dd66732297abb024aa6b02b8306d24614..d02555d59efdc4404ad708c7d837be1c205dab06 100644
--- a/GeoLib/Polyline.cpp
+++ b/GeoLib/Polyline.cpp
@@ -94,9 +94,9 @@ void Polyline::insertPoint(std::size_t pos, std::size_t pnt_id)
 		}
 	}
 
-	std::vector<std::size_t>::iterator it(
-	    _ply_pnt_ids.begin() +
+	std::vector<std::size_t>::difference_type const pos_dt(
 	    static_cast<std::vector<std::size_t>::difference_type>(pos));
+	std::vector<std::size_t>::iterator it(_ply_pnt_ids.begin() + pos_dt);
 	_ply_pnt_ids.insert(it, pnt_id);
 
 	if (_ply_pnt_ids.size() > 1) {
@@ -119,11 +119,8 @@ void Polyline::insertPoint(std::size_t pos, std::size_t pnt_id)
 				if (_ply_pnt_ids.size() > 2)
 					dist_until_now = _length[_ply_pnt_ids.size() - 2];
 
-				_length.insert(
-				    _length.begin() +
-				        static_cast<std::vector<std::size_t>::difference_type>(
-				            pos),
-				    dist_until_now + act_dist);
+				_length.insert(_length.begin() + pos_dt,
+				               dist_until_now + act_dist);
 			} else {
 				// insert at arbitrary position within the vector
 				double dist_until_now (0.0);
@@ -138,14 +135,9 @@ void Polyline::insertPoint(std::size_t pos, std::size_t pnt_id)
 				double update_dist(
 				        len_seg0 + len_seg1 - (_length[pos] - dist_until_now));
 				_length[pos] = dist_until_now + len_seg0;
-				std::vector<double>::iterator it1(
-				    _length.begin() +
-				    static_cast<std::vector<double>::difference_type>(pos + 1));
+				std::vector<double>::iterator it1(_length.begin() + pos_dt + 1);
 				_length.insert(it1, _length[pos] + len_seg1);
-				for (it1 = _length.begin() +
-				           static_cast<std::vector<double>::difference_type>(
-				               pos + 2);
-				     it1 != _length.end();
+				for (it1 = _length.begin() + pos_dt + 2; it1 != _length.end();
 				     ++it1)
 					*it1 += update_dist;
 			}
@@ -158,15 +150,13 @@ void Polyline::removePoint(std::size_t pos)
 	if (pos >= _ply_pnt_ids.size())
 		return;
 
-	_ply_pnt_ids.erase(
-	    _ply_pnt_ids.begin() +
+	std::vector<std::size_t>::difference_type const pos_dt(
 	    static_cast<std::vector<std::size_t>::difference_type>(pos));
+	_ply_pnt_ids.erase(_ply_pnt_ids.begin() + pos_dt);
 
 	if (pos == _ply_pnt_ids.size())
 	{
-		_length.erase(
-		    _length.begin() +
-		    static_cast<std::vector<std::size_t>::difference_type>(pos));
+		_length.erase(_length.begin() + pos_dt);
 		return;
 	}
 
@@ -179,9 +169,7 @@ void Polyline::removePoint(std::size_t pos)
 	} else {
 		const double len_seg0(_length[pos] - _length[pos - 1]);
 		const double len_seg1(_length[pos + 1] - _length[pos]);
-		_length.erase(
-		    _length.begin() +
-		    static_cast<std::vector<std::size_t>::difference_type>(pos));
+		_length.erase(_length.begin() + pos_dt);
 		const double len_new_seg(std::sqrt(MathLib::sqrDist(*_ply_pnts[_ply_pnt_ids[pos - 1]],
 		                                               *_ply_pnts[_ply_pnt_ids[pos]])));
 		double seg_length_diff(len_new_seg - len_seg0 - len_seg1);