diff --git a/modules/gfx/src/scene.cc b/modules/gfx/src/scene.cc
index 5ade15ded528f18f919b2b50ecd5f94fe39921ad..0b619af7514590c4ed64df3498e16a899b278de7 100644
--- a/modules/gfx/src/scene.cc
+++ b/modules/gfx/src/scene.cc
@@ -2020,10 +2020,16 @@ void Scene::stereo_projection(int view)
   }
 
   // TODO: generate both directly from near/far/fov
-  float pm[16];
-  glGetFloatv(GL_PROJECTION_MATRIX,pm);
-  pmat_=geom::Transpose(geom::Mat4(pm));
-  ipmat_=geom::Invert(pmat_);
+  try {
+    float pm[16];
+    glGetFloatv(GL_PROJECTION_MATRIX,pm);
+    pmat_=geom::Transpose(geom::Mat4(pm));
+    ipmat_=geom::Invert(pmat_);
+  } catch (geom::GeomException& e) {
+    LOG_WARNING("caught GeomException in Scene::stereo_projection: " << e.what());
+    pmat_=geom::Mat4();
+    ipmat_=geom::Mat4();
+  }
 }
 
 void Scene::render_stereo()
diff --git a/modules/mol/base/src/transform.cc b/modules/mol/base/src/transform.cc
index 560216cc2045f4917431f46ca3d9377a344b666d..cb76e719655a8f9023daabcaa4824f934f3a87a4 100644
--- a/modules/mol/base/src/transform.cc
+++ b/modules/mol/base/src/transform.cc
@@ -22,6 +22,7 @@
 #include <ost/info/info.hh>
 #include <ost/info/geom_info_conversion.hh>
 #endif
+#include <ost/log.hh>
 #include "transform.hh"
 
 namespace ost { 
@@ -203,7 +204,12 @@ void Transform::update_tm()
                0.0,0.0,0.0,1.0);
   ttm_ = Transpose(tm_);
   // TODO: calculate from rot, cen and trans
-  itm_ = Invert(tm_);
+  try {
+    itm_ = Invert(tm_);
+  } catch (GeomException& e) {
+    LOG_WARNING("caught GeomException in Transform::update_tm: " << e.what());
+    itm_=geom::Mat4();
+  }
 }
 
 void Transform::update_components()