diff --git a/MeshGeoToolsLib/HeuristicSearchLength.cpp b/MeshGeoToolsLib/HeuristicSearchLength.cpp
index fc884a8c27aeb436568ad9f1b188dc3de494b3a7..e7e9a37169cdf843d9bb0f790358e8fa3a2143a7 100644
--- a/MeshGeoToolsLib/HeuristicSearchLength.cpp
+++ b/MeshGeoToolsLib/HeuristicSearchLength.cpp
@@ -34,8 +34,9 @@ HeuristicSearchLength::HeuristicSearchLength(MeshLib::Mesh const& mesh, LengthTy
 				it != elements.cend(); ++it) {
 			std::size_t const n_edges((*it)->getNEdges());
 			for (std::size_t k(0); k<n_edges; k++) {
-				double const len =
-					static_cast<MeshLib::Line const*>((*it)->getEdge(k))->getContent();
+				auto edge = (*it)->getEdge(k);	// allocation inside getEdge().
+				double const len = edge->getContent();
+				delete edge;
 				sum += len;
 				sum_of_sqr += len*len;
 			}