diff --git a/modules/mol/mm/src/simulation.cc b/modules/mol/mm/src/simulation.cc
index 64aba2ddb477cedd7d89319a7b81f4ff03c712cc..fe15d7329a86b8210e387e1921f08416c2311756 100644
--- a/modules/mol/mm/src/simulation.cc
+++ b/modules/mol/mm/src/simulation.cc
@@ -180,19 +180,29 @@ geom::Vec3List Simulation::GetForces(){
   return return_vec;
 }
 
-void Simulation::SetPositions(geom::Vec3List& positions, bool in_angstrom){
+void Simulation::SetPositions(const geom::Vec3List& positions, bool in_angstrom){
   if(top_->GetNumAtoms() != positions.size()){
     throw ost::Error("Number of positions does not correspond to number of atoms in topology!");
   }
-  if(in_angstrom) positions /= 10;
   std::vector<OpenMM::Vec3> openmm_positions;
   OpenMM::Vec3 open_mm_vec;
-  for(geom::Vec3List::iterator i = positions.begin();
-      i != positions.end(); ++i){
-    open_mm_vec[0] = (*i)[0];
-    open_mm_vec[1] = (*i)[1];
-    open_mm_vec[2] = (*i)[2];
-    openmm_positions.push_back(open_mm_vec);
+  if(in_angstrom){
+    for(geom::Vec3List::const_iterator i = positions.begin();
+        i != positions.end(); ++i){
+      open_mm_vec[0] = (*i)[0]*0.1;
+      open_mm_vec[1] = (*i)[1]*0.1;
+      open_mm_vec[2] = (*i)[2]*0.1;
+      openmm_positions.push_back(open_mm_vec);
+    }
+  }
+  else{
+    for(geom::Vec3List::const_iterator i = positions.begin();
+        i != positions.end(); ++i){
+      open_mm_vec[0] = (*i)[0];
+      open_mm_vec[1] = (*i)[1];
+      open_mm_vec[2] = (*i)[2];
+      openmm_positions.push_back(open_mm_vec);
+    }
   }
   context_->setPositions(openmm_positions);
 }
diff --git a/modules/mol/mm/src/simulation.hh b/modules/mol/mm/src/simulation.hh
index c17c6e901b0f07a0aaaea9a50259c4caada515d8..3b918286830fbc5008b91ee0f65fa2f19484689f 100644
--- a/modules/mol/mm/src/simulation.hh
+++ b/modules/mol/mm/src/simulation.hh
@@ -59,7 +59,7 @@ public:
 
   geom::Vec3List GetForces();
 
-  void SetPositions(geom::Vec3List& positions, bool in_angstrom = true);
+  void SetPositions(const geom::Vec3List& positions, bool in_angstrom = true);
 
   void SetVelocities(geom::Vec3List& velocities);