diff --git a/src/mesh/meshGEdgeExtruded.cpp b/src/mesh/meshGEdgeExtruded.cpp
index f9b51a9698fcaa21b1dd19a878098f15d4d903ab..2b606fb945941177bcc969172da218aa9532133d 100644
--- a/src/mesh/meshGEdgeExtruded.cpp
+++ b/src/mesh/meshGEdgeExtruded.cpp
@@ -104,7 +104,12 @@ int MeshExtrudedCurve(GEdge *ge)
 
   if(ep->geo.Mode == EXTRUDED_ENTITY) {
     // curve is extruded from a point
-    extrudeMesh(ge->getBeginVertex(), ge);
+    GVertex *from = ge->model()->getVertexByTag(std::abs(ep->geo.Source));
+    if(!from) {
+      Msg::Error("Unknown source point %d for extrusion", ep->geo.Source);
+      return 0;
+    }
+    extrudeMesh(from, ge);
   }
   else {
     GEdge *from = ge->model()->getEdgeByTag(std::abs(ep->geo.Source));