diff --git a/src/core/ActionAtomistic.h b/src/core/ActionAtomistic.h
index 3a52cc119a91b84a1264f09648228d0259c5b804..12acea4db122825f5736adecafc0b3535616160a 100644
--- a/src/core/ActionAtomistic.h
+++ b/src/core/ActionAtomistic.h
@@ -77,13 +77,16 @@ public:
 /// Get position of i-th atom (access by relative index)
   const Vector & getPosition(int)const;
 /// Get position of i-th atom (access by absolute AtomNumber).
-/// With direct access to the global atom array
-  const Vector & getPosition(AtomNumber)const;
+/// With direct access to the global atom array.
+/// \warning Should be only used by actions that need to read the shared position array.
+///          This array is insensitive to local changes such as makeWhole(), numerical derivatives, etc.
+  const Vector & getGlobalPosition(AtomNumber)const;
 /// Get modifiable position of i-th atom (access by absolute AtomNumber).
-/// Should be used by action that need to modify the stored atomic coordinates
-  Vector & modifyPosition(AtomNumber);
+/// \warning Should be only used by actions that need to modify the shared position array.
+///          This array is insensitive to local changes such as makeWhole(), numerical derivatives, etc.
+  Vector & modifyGlobalPosition(AtomNumber);
 /// Get total number of atoms, including virtual ones.
-/// Can be used to make a loop on modifyPosition or getPosition(AtomNumber)
+/// Can be used to make a loop on modifyGlobalPosition or getGlobalPosition.
   unsigned getTotAtoms()const;
 /// Get modifiable force of i-th atom (access by absolute AtomNumber).
 /// \warning  Should be used by action that need to modify the stored atomic forces.
@@ -188,12 +191,12 @@ const Vector & ActionAtomistic::getPosition(int i)const {
 }
 
 inline
-const Vector & ActionAtomistic::getPosition(AtomNumber i)const {
+const Vector & ActionAtomistic::getGlobalPosition(AtomNumber i)const {
   return atoms.positions[i.index()];
 }
 
 inline
-Vector & ActionAtomistic::modifyPosition(AtomNumber i) {
+Vector & ActionAtomistic::modifyGlobalPosition(AtomNumber i) {
   return atoms.positions[i.index()];
 }
 
diff --git a/src/generic/FitToTemplate.cpp b/src/generic/FitToTemplate.cpp
index b0c3aae134832769b7bf2a38b40750d5469a9356..90e32efe86d0cbb73ffec4227bf7e318e9cd3533 100644
--- a/src/generic/FitToTemplate.cpp
+++ b/src/generic/FitToTemplate.cpp
@@ -285,7 +285,7 @@ void FitToTemplate::calculate() {
     shift=center-cc;
     setValue(shift.modulo());
     for(unsigned i=0; i<getTotAtoms(); i++) {
-      Vector & ato (modifyPosition(AtomNumber::index(i)));
+      Vector & ato (modifyGlobalPosition(AtomNumber::index(i)));
       ato+=shift;
     }
   }
@@ -294,7 +294,7 @@ void FitToTemplate::calculate() {
     double r=rmsd->calc_FitElements( getPositions(), rotation,  drotdpos, centeredpositions, center_positions);
     setValue(r);
     for(unsigned i=0; i<getTotAtoms(); i++) {
-      Vector & ato (modifyPosition(AtomNumber::index(i)));
+      Vector & ato (modifyGlobalPosition(AtomNumber::index(i)));
       ato=matmul(rotation,ato-center_positions)+center;
     }
 // rotate box
diff --git a/src/generic/ResetCell.cpp b/src/generic/ResetCell.cpp
index 40caea04b4d22f3c18812e7f3c707791832f128e..6e91a3935a87220e3deb05b98a25ea6b5d52f824 100644
--- a/src/generic/ResetCell.cpp
+++ b/src/generic/ResetCell.cpp
@@ -153,7 +153,7 @@ void ResetCell::calculate() {
 
 // rotate all coordinates
   for(unsigned i=0; i<getTotAtoms(); i++) {
-    Vector & ato (modifyPosition(AtomNumber::index(i)));
+    Vector & ato (modifyGlobalPosition(AtomNumber::index(i)));
     ato=matmul(rotation,ato);
   }
 // rotate box
diff --git a/src/generic/WholeMolecules.cpp b/src/generic/WholeMolecules.cpp
index 4fee06bb3bddacbf08d6752d0a88c1a472fa7f3a..10087ee8f8fbf52fa0c4542713d618bf9eb8e1a9 100644
--- a/src/generic/WholeMolecules.cpp
+++ b/src/generic/WholeMolecules.cpp
@@ -178,8 +178,8 @@ WholeMolecules::WholeMolecules(const ActionOptions&ao):
 void WholeMolecules::calculate() {
   for(unsigned i=0; i<groups.size(); ++i) {
     for(unsigned j=0; j<groups[i].size()-1; ++j) {
-      const Vector & first (getPosition(groups[i][j]));
-      Vector & second (modifyPosition(groups[i][j+1]));
+      const Vector & first (getGlobalPosition(groups[i][j]));
+      Vector & second (modifyGlobalPosition(groups[i][j+1]));
       second=first+pbcDistance(first,second);
     }
   }
diff --git a/src/generic/WrapAround.cpp b/src/generic/WrapAround.cpp
index 9b8712a086e7daf3614e7e4333414df1dff3e689..d06914fed32c99f89ccf1a30db1040d50dd1f17e 100644
--- a/src/generic/WrapAround.cpp
+++ b/src/generic/WrapAround.cpp
@@ -209,11 +209,11 @@ WrapAround::WrapAround(const ActionOptions&ao):
 
 void WrapAround::calculate() {
   for(unsigned i=0; i<atoms.size(); i+=groupby) {
-    Vector & first (modifyPosition(atoms[i]));
+    Vector & first (modifyGlobalPosition(atoms[i]));
     double mindist2=std::numeric_limits<double>::max();
     int closest=-1;
     for(unsigned j=0; j<reference.size(); ++j) {
-      Vector & second (modifyPosition(reference[j]));
+      Vector & second (modifyGlobalPosition(reference[j]));
       Vector distance=pbcDistance(first,second);
       double distance2=modulo2(distance);
       if(distance2<mindist2) {
@@ -222,12 +222,12 @@ void WrapAround::calculate() {
       }
     }
     plumed_massert(closest>=0,"closest not found");
-    Vector & second (modifyPosition(reference[closest]));
+    Vector & second (modifyGlobalPosition(reference[closest]));
 // place first atom of the group
     first=second+pbcDistance(second,first);
 // then place other atoms close to the first of the group
     for(unsigned j=1; j<groupby; j++) {
-      Vector & second (modifyPosition(atoms[i+j]));
+      Vector & second (modifyGlobalPosition(atoms[i+j]));
       second=first+pbcDistance(first,second);
     }
   }