diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
index b0c5418..bf56198 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
@@ -291,8 +291,8 @@ bool Foam::KinematicParcel<ParcelType>::move
         f = min(f, maxCo*l/max(SMALL*l, mag(s)));
         if (p.active())
         {
-            // Track to and hit the next face
-            p.trackToAndHitFace(f*s, f, td);
+            // Track to the next face
+            p.trackToFace(f*s, f);
         }
         else
         {
@@ -332,6 +332,10 @@ bool Foam::KinematicParcel<ParcelType>::move
 
         if (p.onFace())
         {
+            if (td.keepParticle)
+            {
+                p.hitFace(f*s, td);
+            }
             td.cloud().functions().postFace(p, p.face(), td.keepParticle);
         }
 
