diff --git a/geom-exp.cpp b/geom-exp.cpp
index 532c09e5..3fecafc5 100644
--- a/geom-exp.cpp
+++ b/geom-exp.cpp
@@ -765,7 +765,7 @@ EX void showEuclideanMenu() {
     }
   dialog::addSelItem(XLAT("projection"), current_proj_name(), '1');
   dialog::add_action_push(models::model_menu);
-  if(nonisotropic)
+  if(nonisotropic && !sl2)
     dialog::addBoolItem_action(XLAT("geodesic movement in Sol/Nil"), nisot::geodesic_movement, 'G');
   #if CAP_CRYSTAL && MAXMDIM >= 4
   crystal::add_crystal_transform('x');  
diff --git a/models.cpp b/models.cpp
index febbe846..d93d28a1 100644
--- a/models.cpp
+++ b/models.cpp
@@ -385,7 +385,7 @@ EX namespace models {
     dialog::addSelItem(XLAT("projection type"), get_model_name(pmodel), 'm');
     dialog::add_action_push(model_list);
     
-    if(nonisotropic)
+    if(nonisotropic && !sl2)
       dialog::addBoolItem_action(XLAT("geodesic movement in Sol/Nil"), nisot::geodesic_movement, 'G');
 
     dialog::addBoolItem(XLAT("rotation"), do_rotate == 2, 'r');
diff --git a/system.cpp b/system.cpp
index 4596a379..d4ae428c 100644
--- a/system.cpp
+++ b/system.cpp
@@ -1191,6 +1191,7 @@ EX void set_geometry(eGeometry target) {
     if(GDIM == 2 && among(pmodel, mdPerspective, mdGeodesic)) pmodel = mdDisk;
     if(nonisotropic && old_DIM == 2 && vid.texture_step < 4) vid.texture_step = 4;
     if(prod) { pmodel = mdPerspective; if(vid.texture_step < 4) vid.texture_step = 4; }
+    if(sl2) nisot::geodesic_movement = true;
     }
   }