diff --git a/src/bias/MovingRestraint.cpp b/src/bias/MovingRestraint.cpp
index 5de07d1078f0bed00a351c7adf1471b855d4382a..02c08fb4e9e4124501278582ac3d3ba0d5ef9182 100644
--- a/src/bias/MovingRestraint.cpp
+++ b/src/bias/MovingRestraint.cpp
@@ -230,7 +230,11 @@ void MovingRestraint::calculate(){
     double c2=(now-step[i-1])/double(step[i]-step[i-1]);
     double c1=1.0-c2;
     for(unsigned j=0;j<narg;j++) kk[j]=(c1*kappa[i-1][j]+c2*kappa[i][j]);
-    for(unsigned j=0;j<narg;j++) aa[j]=(c1*at[i-1][j]+c2*at[i][j]);
+    for(unsigned j=0;j<narg;j++) {
+      const double a1=at[i-1][j];
+      const double a2=at[i][j];
+      aa[j]=(c1*a1+c2*(a1+difference(j,a1,a2)));
+    }
   }
   tot_work=0.0;
   for(unsigned i=0;i<narg;++i){