diff --git a/src/quaternion.hh b/src/quaternion.hh
index 00a0f214c9ea310b71fd8460eef5c890ea142b4d..0e97c3abe7ee73fc5914355cf0f295d09cd0e77e 100644
--- a/src/quaternion.hh
+++ b/src/quaternion.hh
@@ -17,6 +17,10 @@ public:
         T normV = std::sqrt(v0*v0 + v1*v1 + v2*v2);
         T sin   = std::sin(normV/2)/normV;
 
+        // if normV == 0 then q = (0,0,0,1)
+        if (isnan(sin))
+            sin = 0;
+            
         q[0] = sin * v0;
         q[1] = sin * v1;
         q[2] = sin * v2;