diff --git a/Geo/gmshLevelset.cpp b/Geo/gmshLevelset.cpp
index 78beae10b627e599f83082f162de35469a63c8d9..05926f882a6e2d6c1d51aa2b5725dee869526c75 100644
--- a/Geo/gmshLevelset.cpp
+++ b/Geo/gmshLevelset.cpp
@@ -979,14 +979,16 @@ double gLevelsetDistMesh::operator()(double x, double y, double z) const
       Msg::Error("Cannot compute a distance to an entity of dimension %d\n",
                  (*it)->getDim());
     }
-    if(fabs(distance) == fabs(minDistance)){
-      closestElements.push_back(*it);
-    }
-    if(fabs(distance) < fabs(minDistance)){
-      closestPoint = closePt;
-      minDistance = distance;
-      closestElements.clear();
-      closestElements.push_back(*it);
+    if ((*it)->getDim() == 2) {
+      if(fabs(distance) == fabs(minDistance)){
+        closestElements.push_back(*it);
+      }
+      if(fabs(distance) < fabs(minDistance)){
+        closestPoint = closePt;
+        minDistance = distance;
+        closestElements.clear();
+        closestElements.push_back(*it);
+      }
     }
   }
   if(closestElements.size() > 1){