bugfix in SVD
diff --git a/Eigen/src/SVD/SVD.h b/Eigen/src/SVD/SVD.h
index f9f9feb..b68d1c8 100644
--- a/Eigen/src/SVD/SVD.h
+++ b/Eigen/src/SVD/SVD.h
@@ -125,7 +125,7 @@
     {
       return (b >= Scalar(0.0) ? ei_abs(a) : -ei_abs(a));
     }
-    
+
   protected:
     /** \internal */
     MatrixUType m_matU;
@@ -254,11 +254,14 @@
     if (g != Scalar(0.0))
     {
       g = Scalar(1.0)/g;
-      for (j=l; j<n; j++)
+      if (m-l)
       {
-        s = A.col(i).end(m-l).dot(A.col(j).end(m-l));
-        f = (s/A(i,i))*g;
-        A.col(j).end(m-i) += f * A.col(i).end(m-i);
+        for (j=l; j<n; j++)
+        {
+          s = A.col(i).end(m-l).dot(A.col(j).end(m-l));
+          f = (s/A(i,i))*g;
+          A.col(j).end(m-i) += f * A.col(i).end(m-i);
+        }
       }
       A.col(i).end(m-i) *= g;
     }