diff --git a/modules/mol/base/pymod/wrap_mol.cc b/modules/mol/base/pymod/wrap_mol.cc
index 7055b2f783b8491609294a19dca2fdf00d4e9b38..ee56770f1dfc98d5cb5e518156baa94572a80fc2 100644
--- a/modules/mol/base/pymod/wrap_mol.cc
+++ b/modules/mol/base/pymod/wrap_mol.cc
@@ -72,18 +72,19 @@ BOOST_PYTHON_MODULE(_mol)
   class_<Transform>("Transform", init<>())
     .def(init<const Transform&>()) // shouldn't this be there automatically ?
     .def("GetMatrix",&Transform::GetMatrix)
-	.add_property("matrix",&Transform::GetMatrix)
+    .def("SetMatrix",&Transform::SetMatrix)
+    .add_property("matrix",&Transform::GetMatrix,&Transform::SetMatrix)
     .def("GetTransposedMatrix",&Transform::GetTransposedMatrix)
- 	.add_property("tmatrix",&Transform::GetTransposedMatrix)
+    .add_property("tmatrix",&Transform::GetTransposedMatrix)
     .def("SetTrans",&Transform::SetTrans)
     .def("GetTrans",&Transform::GetTrans)
-	.add_property("trans",&Transform::GetTrans,&Transform::SetTrans)
+    .add_property("trans",&Transform::GetTrans,&Transform::SetTrans)
     .def("SetCenter",&Transform::SetCenter)
     .def("GetCenter",&Transform::GetCenter)
-	.add_property("center",&Transform::GetCenter,&Transform::SetCenter)
+    .add_property("center",&Transform::GetCenter,&Transform::SetCenter)
     .def("SetRot",&Transform::SetRot)
     .def("GetRot",&Transform::GetRot)
-	.add_property("rot",&Transform::GetRot,&Transform::SetRot)
+    .add_property("rot",&Transform::GetRot,&Transform::SetRot)
     .def("ApplyXAxisRotation",&Transform::ApplyXAxisRotation)
     .def("ApplyYAxisRotation",&Transform::ApplyYAxisRotation)
     .def("ApplyZAxisRotation",&Transform::ApplyZAxisRotation)
diff --git a/modules/mol/base/src/transform.cc b/modules/mol/base/src/transform.cc
index 611c9111be5a0c83c00e218ea0ad398ad339dcb3..ffee262dec1767ac26e6645ead08fb3d8bd3acf6 100644
--- a/modules/mol/base/src/transform.cc
+++ b/modules/mol/base/src/transform.cc
@@ -42,12 +42,17 @@ Mat4 Transform::GetMatrix() const
   return tm_;
 }
 
+void Transform::SetMatrix(const Mat4& m)
+{
+  tm_=m;
+  ttm_ = Transpose(tm_);
+}
+
 Mat4 Transform::GetTransposedMatrix() const
 {
   return ttm_;
 }
 
-
 void Transform::SetTrans(const Vec3& t) 
 {
   trans_=t;
diff --git a/modules/mol/base/src/transform.hh b/modules/mol/base/src/transform.hh
index d3ce79763b3663cb0fb46518341d296c0774ea1b..5c9acd27605bbff805b40eaac297c83219cd5582 100644
--- a/modules/mol/base/src/transform.hh
+++ b/modules/mol/base/src/transform.hh
@@ -41,7 +41,8 @@ public:
   void SetCenter(const geom::Vec3& c);
   geom::Vec3 GetCenter() const;
 
-
+  // directly set tm, messing up rot/trans/cen !
+  void SetMatrix(const geom::Mat4& m);
 
   /// \name rotation
   //@{