diff --git a/src/geo/GEdge.h b/src/geo/GEdge.h
index 9d300349dedacceda3b11a97578d3cce4cd7d0e1..5f68cb53c87278c6fedc78e4223e5d75ba0a98ee 100644
--- a/src/geo/GEdge.h
+++ b/src/geo/GEdge.h
@@ -58,8 +58,8 @@ public:
   virtual void deleteMesh();
 
   // get the start/end vertices of the edge
-  void setBeginVertex(GVertex *gv) { _v0 = gv; }
-  void setEndVertex(GVertex *gv) { _v1 = gv; }
+  void setBeginVertex(GVertex *gv) { _v0 = gv; gv->addEdge(this); }
+  void setEndVertex(GVertex *gv) { _v1 = gv; gv->addEdge(this); }
   virtual GVertex *getBeginVertex() const { return _v0; }
   virtual GVertex *getEndVertex() const { return _v1; }
   void setVertex(GVertex *const f, const int orientation)