Index: src/Atom/atom_atominfo.cpp
===================================================================
--- src/Atom/atom_atominfo.cpp	(revision 11f0fa19d8254edfe8f5b0654094d3e0eb6a2fb6)
+++ src/Atom/atom_atominfo.cpp	(revision a8bc27aa262cd21ec6c702198d225935b0a195c4)
@@ -279,5 +279,5 @@
 {
   OBSERVE;
-  NOTIFY(AtomObservable::VelocityChanged);
+  NOTIFY(AtomObservable::ForceChanged);
   ASSERT(WorldTime::getTime() < AtomicForce.size(),
       "AtomInfo::setAtomicForce() - Access out of range: "
@@ -291,5 +291,5 @@
   OBSERVE;
   if (WorldTime::getTime() == _step)
-    NOTIFY(AtomObservable::VelocityChanged);
+    NOTIFY(AtomObservable::ForceChanged);
   const unsigned int size = AtomicForce.size();
   ASSERT(_step <= size,
@@ -579,20 +579,20 @@
 };
 
-/** Performs a velocity verlet update of the trajectory.
- * Parameters are according to those in configuration class.
+/** Performs a velocity verlet update of the position at \a NextStep from \a LastStep information only.
+ *
+ * We calculate \f$x(t + \delta t) = x(t) + v(t)* \delta t + .5 * \delta t * \delta t * F(t)/m \f$.
+ *
+ *
  * \param NextStep index of sequential step to set
  * \param Deltat time step width
  * \param IsAngstroem whether the force's underlying unit of length is angstroem or bohr radii
  */
-void AtomInfo::VelocityVerletUpdate(int nr, const unsigned int NextStep, double Deltat, bool IsAngstroem)
+void AtomInfo::VelocityVerletUpdateX(int nr, const unsigned int NextStep, double Deltat, bool IsAngstroem)
 {
   const unsigned int LastStep = NextStep == 0 ? 0 : NextStep-1;
 
   LOG(2, "INFO: Particle that currently " << *this);
-  LOG(2, "INFO: Integrating with mass=" << getMass() << " and Deltat="
+  LOG(2, "INFO: Integrating position with mass=" << getMass() << " and Deltat="
       << Deltat << " at NextStep=" << NextStep);
-  // update force
-  // (F+F_old)/2m = a and thus: v = (F+F_old)/2m * t = (F + F_old) * a
-  LOG(3, "INFO: Force at step " << NextStep << " is " << getAtomicForceAtStep(NextStep));
 
   // update position
@@ -603,8 +603,29 @@
     LOG(4, "INFO: position with velocity " << getAtomicVelocityAtStep(LastStep) << " from last step " << tempVector);
     tempVector += .5*Deltat*Deltat*(getAtomicForceAtStep(LastStep))*(1./getMass());     // F = m * a and s =
-    LOG(4, "INFO: position with force " << getAtomicForceAtStep(NextStep) << " from last step " << tempVector);
+    LOG(4, "INFO: position with force " << getAtomicForceAtStep(LastStep) << " from last step " << tempVector);
     setPositionAtStep(NextStep, tempVector);
     LOG(3, "INFO: Position at step " << NextStep << " set to " << tempVector);
   }
+};
+
+/** Performs a velocity verlet update of the velocity at \a NextStep.
+ *
+ * \note forces at NextStep should have been calculated based on position at NextStep prior
+ * to calling this function.
+ *
+ * We calculate \f$v(t) = v(t - \delta t) + \delta _t * .5 * (F(t - \delta t) + F(t))/m \f$.
+ *
+ * Parameters are according to those in configuration class.
+ * \param NextStep index of sequential step to set
+ * \param Deltat time step width
+ * \param IsAngstroem whether the force's underlying unit of length is angstroem or bohr radii
+ */
+void AtomInfo::VelocityVerletUpdateU(int nr, const unsigned int NextStep, double Deltat, bool IsAngstroem)
+{
+  const unsigned int LastStep = NextStep == 0 ? 0 : NextStep-1;
+
+  LOG(2, "INFO: Particle that currently " << *this);
+  LOG(2, "INFO: Integrating velocity with mass=" << getMass() << " and Deltat="
+      << Deltat << " at NextStep=" << NextStep);
 
   // Update U
Index: src/Atom/atom_atominfo.hpp
===================================================================
--- src/Atom/atom_atominfo.hpp	(revision 11f0fa19d8254edfe8f5b0654094d3e0eb6a2fb6)
+++ src/Atom/atom_atominfo.hpp	(revision a8bc27aa262cd21ec6c702198d225935b0a195c4)
@@ -267,5 +267,6 @@
   size_t getTrajectorySize() const;
   void CopyStepOnStep(const unsigned int dest, const unsigned int src);
-  void VelocityVerletUpdate(int nr, const unsigned int NextStep, double Deltat, bool IsAngstroem);
+  void VelocityVerletUpdateX(int nr, const unsigned int NextStep, double Deltat, bool IsAngstroem);
+  void VelocityVerletUpdateU(int nr, const unsigned int NextStep, double Deltat, bool IsAngstroem);
   double getKineticEnergy(const unsigned int step) const;
   Vector getMomentum(const unsigned int step) const;
