diff --git a/core/data/sts/CbmStsPoint.cxx b/core/data/sts/CbmStsPoint.cxx
index dda0d7a575c8c83c78f70e11ddecf80acb46680d..1d236862a4d837a70dc3f01c9a02719afe2833b2 100644
--- a/core/data/sts/CbmStsPoint.cxx
+++ b/core/data/sts/CbmStsPoint.cxx
@@ -90,8 +90,8 @@ CbmStsPoint::CbmStsPoint(const CbmStsPoint& point, int32_t eventId, double event
 double CbmStsPoint::GetX(double z) const
 {
   //  LOG(info) << fZ << " " << z << " " << fZ_out;
-  if ((fZ_out - z) * (fZ - z) >= 0.) return (fX_out + fX) / 2.;
   double dz = fZ_out - fZ;
+  if (fabs(dz) < 1.e-4) return 0.5 * (fX_out + fX);
   return (fX + (z - fZ) / dz * (fX_out - fX));
 }
 // -------------------------------------------------------------------------
@@ -100,9 +100,8 @@ double CbmStsPoint::GetX(double z) const
 // -----   Point y coordinate from linear extrapolation   ------------------
 double CbmStsPoint::GetY(double z) const
 {
-  if ((fZ_out - z) * (fZ - z) >= 0.) return (fY_out + fY) / 2.;
   double dz = fZ_out - fZ;
-  //  if ( abs(dz) < 1.e-3 ) return (fY_out+fY)/2.;
+  if (fabs(dz) < 1.e-4) return 0.5 * (fY_out + fY);
   return (fY + (z - fZ) / dz * (fY_out - fY));
 }
 // -------------------------------------------------------------------------