diff --git a/src/CLASS2/improper_class2.cpp b/src/CLASS2/improper_class2.cpp
index 942f46aa22694f284bb31be49c7e7c72a0f741be..6c599276ca1b27c1fa2c168c53ed4aef45ae7cc2 100644
--- a/src/CLASS2/improper_class2.cpp
+++ b/src/CLASS2/improper_class2.cpp
@@ -819,7 +819,8 @@ void ImproperClass2::angleangle(int eflag, int vflag)
     if (evflag)
       ev_tally(i1,i2,i3,i4,nlocal,newton_bond,eimproper,
                fabcd[0],fabcd[2],fabcd[3],
-               delxAB,delyAB,delzAB,delxBC,delyBC,delzBC,delxBD,delyBD,delzBD);
+               delxAB,delyAB,delzAB,delxBC,delyBC,delzBC,
+               delxBD-delxBC,delyBD-delyBC,delzBD-delzBC);
   }
 }
 
diff --git a/src/MOLECULE/improper_umbrella.cpp b/src/MOLECULE/improper_umbrella.cpp
index 38493530c61c1b536b56f940488e100cd903210d..a2f176e732d1e05482ba7e0d1754eb1174e0c139 100644
--- a/src/MOLECULE/improper_umbrella.cpp
+++ b/src/MOLECULE/improper_umbrella.cpp
@@ -233,7 +233,7 @@ void ImproperUmbrella::compute(int eflag, int vflag)
 
     if (evflag) {
 
-      // correct 4-body geometry for virial tally
+      // get correct 4-body geometry for virial tally
 
       vb1x = x[i1][0] - x[i2][0];
       vb1y = x[i1][1] - x[i2][1];
@@ -247,7 +247,6 @@ void ImproperUmbrella::compute(int eflag, int vflag)
       vb3y = x[i4][1] - x[i3][1];
       vb3z = x[i4][2] - x[i3][2];
 
-
       ev_tally(i1,i2,i3,i4,nlocal,newton_bond,eimproper,f1,f3,f4,
                vb1x,vb1y,vb1z,vb2x,vb2y,vb2z,vb3x,vb3y,vb3z);
     }
diff --git a/src/USER-OMP/improper_class2_omp.cpp b/src/USER-OMP/improper_class2_omp.cpp
index 5e32795371429647bd7bd53327a11041f672fad0..3beeb41a2626d5f9b52d52a348d69cda07111c90 100644
--- a/src/USER-OMP/improper_class2_omp.cpp
+++ b/src/USER-OMP/improper_class2_omp.cpp
@@ -696,7 +696,8 @@ void ImproperClass2OMP::angleangle_thr(int nfrom, int nto, ThrData * const thr)
 
     if (EVFLAG)
       ev_tally_thr(this,i1,i2,i3,i4,nlocal,NEWTON_BOND,eimproper,
-                   fabcd[0],fabcd[2],fabcd[3],delxAB,delyAB,delzAB,
-                   delxBC,delyBC,delzBC,delxBD,delyBD,delzBD,thr);
+                   fabcd[0],fabcd[2],fabcd[3],
+                   delxAB,delyAB,delzAB,delxBC,delyBC,delzBC,
+                   delxBD-delxBC,delyBD-delyBC,delzBD-delzBC,thr);
   }
 }