bugfix in operator*= (matrix product)
diff --git a/Eigen/src/Core/Product.h b/Eigen/src/Core/Product.h
index 05a8221..52fb0db 100644
--- a/Eigen/src/Core/Product.h
+++ b/Eigen/src/Core/Product.h
@@ -300,7 +300,7 @@
 inline Derived &
 MatrixBase<Derived>::operator*=(const MatrixBase<OtherDerived> &other)
 {
-  return *this = *this * other;
+  return derived() = derived() * other.derived();
 }
 
 /***************************************************************************