diff --git a/Mesh/HighOrder.cpp b/Mesh/HighOrder.cpp
index 661f4048ae265fe64e1aa1f6c33d10dff4d0d4ea..a3ec772d57e222383a80be665dd56d9d968442e9 100644
--- a/Mesh/HighOrder.cpp
+++ b/Mesh/HighOrder.cpp
@@ -148,6 +148,7 @@ bool reparamOnFace(MVertex *v1, MVertex *v2, GFace *gf, SPoint2 &param1, SPoint2
   return false;
 }
 
+// FIXME: this should NOT be in HighOrder.cpp...
 bool reparamOnFace(MVertex *v, GFace *gf, SPoint2 &param)
 {
 
@@ -157,6 +158,12 @@ bool reparamOnFace(MVertex *v, GFace *gf, SPoint2 &param)
     return true;
   }
 
+  if(v->onWhat()->geomType() == GEntity::DiscreteCurve || 	 
+     v->onWhat()->geomType() == GEntity::BoundaryLayerCurve){ 	 
+    param = gf->parFromPoint(SPoint3(v->x(), v->y(), v->z()));
+    return true;
+  }
+
   if(v->onWhat()->dim() == 0){
     GVertex *gv = (GVertex*)v->onWhat();