diff --git a/src/generic/Plumed.cpp b/src/generic/Plumed.cpp
index ac88366a8a32634a7906661fb81f694ff77b5e42..6c1b29127a1661dfde41757a3463187b7dae3dbc 100644
--- a/src/generic/Plumed.cpp
+++ b/src/generic/Plumed.cpp
@@ -324,7 +324,7 @@ void Plumed::prepare() {
   bool redo=(index.size()!=n);
   if(first) redo=true;
   first=false;
-  if(!redo) for(int i=0; i<n; i++) if(index[i]!=pointer[i]) { redo=true; break;};
+  if(root && !redo) for(int i=0; i<n; i++) if(index[i]!=pointer[i]) { redo=true; break;};
   if(root && redo) {
     index.resize(n);
     masses.resize(n);