diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp
index dc7deac39342390ba050c282d549d9b8d8154849..54ab857f8d8c0e5d12d78182a2b46468dd9fb9db 100644
--- a/Geo/Geo.cpp
+++ b/Geo/Geo.cpp
@@ -249,8 +249,9 @@ void End_Curve(Curve *c)
   }
   c->degenerated = false;
 
-  if(c->Typ == MSH_SEGM_CIRC || c->Typ == MSH_SEGM_CIRC_INV ||
-     c->Typ == MSH_SEGM_ELLI || c->Typ == MSH_SEGM_ELLI_INV) {
+  if((c->Typ == MSH_SEGM_CIRC || c->Typ == MSH_SEGM_CIRC_INV ||
+      c->Typ == MSH_SEGM_ELLI || c->Typ == MSH_SEGM_ELLI_INV) &&
+     (NN == 3 || NN == 4)) {
 
     // v[0] = first point
     // v[1] = center