diff --git a/modules/mol/mm/src/simulation.cc b/modules/mol/mm/src/simulation.cc
index 1dd71dfe867552a1f438384b1148d5c24d9e9010..64aba2ddb477cedd7d89319a7b81f4ff03c712cc 100644
--- a/modules/mol/mm/src/simulation.cc
+++ b/modules/mol/mm/src/simulation.cc
@@ -47,8 +47,6 @@ SimulationPtr Simulation::Load(const String& filename, MMSettingsPtr settings){
   TopologyPtr top_p(new Topology);
   ds >> *top_p;
 
-  sim_ptr->original_masses_ = top_p->GetMasses(); 
-
   sim_ptr->top_ = top_p;
 
   sim_ptr->system_ = SystemCreator::Create(sim_ptr->top_,settings,
@@ -114,7 +112,6 @@ void Simulation::Init(const TopologyPtr top,
   }
   system_ = SystemCreator::Create(top_,settings,system_force_mapper_); 
   ost::mol::EntityHandle ent = top_->GetEntity();
-  original_masses_ = top_->GetMasses();
 
   //setting up the context, which combines the system with an integrator
   //to proceed in time, but first we have to load the proper platform
@@ -487,8 +484,9 @@ void Simulation::AddPositionConstraints(const std::vector<uint>& index){
 }
 
 void Simulation::ResetPositionConstraints(){
-  for(uint i = 0; i < original_masses_.size(); ++i){
-    system_->setParticleMass(i,original_masses_[i]);
+  std::vector<Real> original_masses = top_->GetMasses();
+  for(uint i = 0; i < original_masses.size(); ++i){
+    system_->setParticleMass(i,original_masses[i]);
   }
   top_->ResetPositionConstraints();
   context_->reinitialize();
diff --git a/modules/mol/mm/src/simulation.hh b/modules/mol/mm/src/simulation.hh
index 6b7ba1370621a493f411b4284b8e0aefea64ebd3..c17c6e901b0f07a0aaaea9a50259c4caada515d8 100644
--- a/modules/mol/mm/src/simulation.hh
+++ b/modules/mol/mm/src/simulation.hh
@@ -134,7 +134,6 @@ private:
   std::vector<MMObserverPtr> observers_;
   std::vector<int> time_to_notify_;
   std::map<FuncType,uint> system_force_mapper_;
-  std::vector<Real> original_masses_;
 };
 
 }}} //ns