diff --git a/src/REPLICA/fix_neb.cpp b/src/REPLICA/fix_neb.cpp
index 98e55398728c06caf536ee925b988f359376d84a..33f834a14069b42d4fa56379c35db41a2e102379 100644
--- a/src/REPLICA/fix_neb.cpp
+++ b/src/REPLICA/fix_neb.cpp
@@ -425,10 +425,14 @@ void FixNEB::min_post_force(int vflag)
             tangent[i][0] = vmax*delxn + vmin*delxp;
             tangent[i][1] = vmax*delyn + vmin*delyp;
             tangent[i][2] = vmax*delzn + vmin*delzp;
-          } else {
+          } else if (vnext < vprev) {
             tangent[i][0] = vmin*delxn + vmax*delxp;
             tangent[i][1] = vmin*delyn + vmax*delyp;
             tangent[i][2] = vmin*delzn + vmax*delzp;
+          } else { // vnext == vprev, e.g. for potentials that do not compute an energy
+            tangent[i][0] = delxn + delxp;
+            tangent[i][1] = delyn + delyp;
+            tangent[i][2] = delzn + delzp;
           }
         }