diff --git a/contrib/Salome/Partition_Loop2d.cxx b/contrib/Salome/Partition_Loop2d.cxx
index 7c0ba8d2977cdc0f1c4b5982aead52d769eed9d0..93b18598c7d9595ef92c191181f774e2a2fd1103 100644
--- a/contrib/Salome/Partition_Loop2d.cxx
+++ b/contrib/Salome/Partition_Loop2d.cxx
@@ -476,7 +476,11 @@ static TopoDS_Edge MakeDegenAndSelect(const TopoDS_Edge& CE,
     if ( ! CV.IsSame( TopExp::FirstVertex( E , Standard_True )))
       continue;
     NE = E;
+#if defined(WIN32) // fix for OCE on win32
+    dUmin = dU + (dU+1e-12);
+#else
     dUmin = dU + Epsilon(dU);
+#endif
     U2 = USeq(i);
   }