diff --git a/src/BRepOffset/BRepOffset_Error.hxx b/src/BRepOffset/BRepOffset_Error.hxx
index 89621eda86..447eec83ad 100644
--- a/src/BRepOffset/BRepOffset_Error.hxx
+++ b/src/BRepOffset/BRepOffset_Error.hxx
@@ -21,11 +21,11 @@
 enum BRepOffset_Error
 {
 BRepOffset_NoError,
-BRepOffset_OffsetSurfaceFailed,
-BRepOffset_UnCorrectClosingFace,
-BRepOffset_ExtentFaceFailed,
-BRepOffset_RadiusEqualOffset,
-BRepOffset_UnknownError
+BRepOffset_UnknownError,
+BRepOffset_BadNormalsOnGeometry,
+BRepOffset_C0Geometry,
+BRepOffset_NullOffset,
+BRepOffset_NotConnectedShell
 };
 
 #endif // _BRepOffset_Error_HeaderFile
diff --git a/src/BRepOffset/BRepOffset_MakeOffset.cxx b/src/BRepOffset/BRepOffset_MakeOffset.cxx
index b08afacf4f..15b64e83f2 100644
--- a/src/BRepOffset/BRepOffset_MakeOffset.cxx
+++ b/src/BRepOffset/BRepOffset_MakeOffset.cxx
@@ -111,6 +111,7 @@
 #include <TopTools_SequenceOfShape.hxx>
 #include <BRepBuilderAPI_Sewing.hxx>
 #include <Geom_Line.hxx>
+#include <NCollection_Vector.hxx>
 
 #include <stdio.h>
 // POP for NT
@@ -235,6 +236,11 @@ static void DEBVerticesControl (const TopTools_IndexedMapOfShape& NewEdges,
 }  
 #endif
 
+static BRepOffset_Error checkSinglePoint(const Standard_Real theUParam,
+                                         const Standard_Real theVParam,
+                                         const Handle(Geom_Surface)& theSurf,
+                                         const NCollection_Vector<gp_Pnt>& theBadPoints);
+
 //---------------------------------------------------------------------
 static void UpdateTolerance (      TopoDS_Shape&               myShape,
 			     const TopTools_IndexedMapOfShape& myFaces);
@@ -679,28 +685,11 @@ void BRepOffset_MakeOffset::MakeOffsetShape()
     RemoveCorks (myShape,myFaces);
   }
 
-  if (! IsConnectedShell(myShape))
-    Standard_ConstructionError::Raise("BRepOffset_MakeOffset : Incorrect set of faces to remove, the remaining shell is not connected");
-
-  if (Abs(myOffset) <= myTol)
+  if (!CheckInputData())
   {
-    // Check for face with non-null offset value.
-    Standard_Boolean isFound = Standard_False;
-    TopTools_DataMapIteratorOfDataMapOfShapeReal anIter(myFaceOffset);
-    for( ; anIter.More(); anIter.Next())
-    {
-      if (Abs(anIter.Value()) > myTol)
-      {
-        isFound = Standard_True;
-        break;
-      }
-    }
-
-    if (!isFound)
-    {
-      // No face with non-null offset found.
-      return;
-    }
+    // There is error in input data.
+    // Check Error() method.
+    return;
   }
 
   TopAbs_State       Side = TopAbs_IN;
@@ -814,11 +803,18 @@ void BRepOffset_MakeOffset::MakeThickSolid()
   //--------------------------------------------------------------
   MakeOffsetShape ();
 
+  if (!myDone)
+  {
+    // Save return code and myDone state.
+    return;
+  }
+
   //--------------------------------------------------------------------
   // Construction of a solid with the initial shell, parallel shell 
   // limited by caps.
   //--------------------------------------------------------------------
-  if (!myFaces.IsEmpty()) {
+  if (!myFaces.IsEmpty())
+  {
     TopoDS_Solid    Res;
     TopExp_Explorer exp;
     BRep_Builder    B;
@@ -827,7 +823,8 @@ void BRepOffset_MakeOffset::MakeThickSolid()
     B.MakeSolid(Res);
 
     BRepTools_Quilt Glue;
-    for (exp.Init(myShape,TopAbs_FACE); exp.More(); exp.Next()) {
+    for (exp.Init(myShape,TopAbs_FACE); exp.More(); exp.Next())
+    {
       NbF++;
       Glue.Add (exp.Current());
     } 
@@ -856,11 +853,13 @@ void BRepOffset_MakeOffset::MakeThickSolid()
     if (YaResult == 0)
       {
       myDone = Standard_False;
+      myError = BRepOffset_UnknownError;
       return;
       }
 
     myOffsetShape = Glue.Shells();
-    for (exp.Init(myOffsetShape,TopAbs_SHELL); exp.More(); exp.Next()) {
+    for (exp.Init(myOffsetShape,TopAbs_SHELL); exp.More(); exp.Next())
+    {
       B.Add(Res,exp.Current());
     }
     Res.Closed(Standard_True);
@@ -868,18 +867,20 @@ void BRepOffset_MakeOffset::MakeThickSolid()
 
     // Test of Validity of the result of thick Solid 
     // more face than the initial solid.
-        
     Standard_Integer NbOF = 0;
-    for (exp.Init(myOffsetShape,TopAbs_FACE);exp.More(); exp.Next()) {
+    for (exp.Init(myOffsetShape,TopAbs_FACE);exp.More(); exp.Next())
+    {
       NbOF++;
     }
-    if (NbOF <= NbF) {
+    if (NbOF <= NbF)
+    {
       myDone = Standard_False;
+      myError = BRepOffset_UnknownError;
       return;
     }
   }
 
-  if (myOffset > 0 ) myOffsetShape.Reverse();  
+  if (myOffset > 0 ) myOffsetShape.Reverse();
 
   myDone = Standard_True;
 }
@@ -3466,3 +3467,172 @@ void CorrectSolid(TopoDS_Solid& theSol, TopTools_ListOfShape& theSolList)
   }
   theSol = aNewSol;
 }
+
+//=======================================================================
+//function : CheckInputData
+//purpose  : Check input data for possiblity of offset perform.
+//=======================================================================
+Standard_Boolean BRepOffset_MakeOffset::CheckInputData()
+{
+  // Set initial error state.
+  myError = BRepOffset_NoError;
+  TopoDS_Shape aTmpShape;
+  myBadShape = aTmpShape;
+
+  // Non-null offset.
+  if (Abs(myOffset) <= myTol)
+  {
+    Standard_Boolean isFound = Standard_False;
+    TopTools_DataMapIteratorOfDataMapOfShapeReal anIter(myFaceOffset);
+    for( ; anIter.More(); anIter.Next())
+    {
+      if (Abs(anIter.Value()) > myTol)
+      {
+        isFound = Standard_True;
+        break;
+      }
+    }
+
+    if (!isFound)
+    {
+      // No face with non-null offset found.
+      myError = BRepOffset_NullOffset;
+      return Standard_False;
+    }
+  }
+
+  // Connectivity of input shape.
+  if (!IsConnectedShell(myShape))
+  {
+    myError = BRepOffset_NotConnectedShell;
+    return Standard_False;
+  }
+
+  // Normals check and continuity check.
+  const Standard_Integer aPntPerDim = 20; // 21 points on each dimension.
+  Standard_Real aUmin, aUmax, aVmin, aVmax;
+  TopExp_Explorer anExpSF(myShape, TopAbs_FACE);
+  NCollection_Map<Handle(TopoDS_TShape)> aPresenceMap;
+  TopLoc_Location L;
+  gp_Pnt2d aPnt2d;
+  for( ; anExpSF.More(); anExpSF.Next())
+  {
+    const TopoDS_Face& aF = TopoDS::Face(anExpSF.Current());
+
+    if (aPresenceMap.Contains(aF.TShape()))
+    {
+      // Not perform computations with partner shapes,
+      // since they are contain same geometry.
+      continue;
+    }
+    aPresenceMap.Add(aF.TShape());
+
+    const Handle(Geom_Surface)& aSurf = BRep_Tool::Surface(aF, L);
+    BRepTools::UVBounds(aF, aUmin, aUmax, aVmin, aVmax);
+
+    // Continuity check.
+    if (aSurf->Continuity() == GeomAbs_C0)
+    {
+      myError = BRepOffset_C0Geometry;
+      return Standard_False;
+    }
+
+    // Get degenerated points, to avoid check them.
+    NCollection_Vector<gp_Pnt> aBad3dPnts;
+    TopExp_Explorer anExpFE(aF, TopAbs_EDGE);
+    for( ; anExpFE.More(); anExpFE.Next())
+    {
+      const TopoDS_Edge &aE = TopoDS::Edge(anExpFE.Current());
+      if (BRep_Tool::Degenerated(aE))
+      {
+        aBad3dPnts.Append(BRep_Tool::Pnt((TopExp::FirstVertex(aE))));
+      }
+    }
+
+    // Geometry grid check.
+    for(Standard_Integer i = 0; i <= aPntPerDim; i++)
+    {
+      Standard_Real aUParam = aUmin + (aUmax - aUmin) * i / aPntPerDim;
+      for(Standard_Integer j = 0; j <= aPntPerDim; j++)
+      {
+        Standard_Real aVParam = aVmin + (aVmax - aVmin) * j / aPntPerDim;
+
+        myError = checkSinglePoint(aUParam, aVParam, aSurf, aBad3dPnts);
+        if (myError != BRepOffset_NoError)
+          return Standard_False;
+      }
+    }
+
+    // Vertex list check.
+    TopExp_Explorer anExpFV(aF, TopAbs_VERTEX);
+    for( ; anExpFV.More(); anExpFV.Next())
+    {
+      const TopoDS_Vertex &aV = TopoDS::Vertex(anExpFV.Current());
+      aPnt2d = BRep_Tool::Parameters(aV, aF);
+
+      myError = checkSinglePoint(aPnt2d.X(), aPnt2d.Y(), aSurf, aBad3dPnts);
+      if (myError != BRepOffset_NoError)
+        return Standard_False;
+    }
+  }
+
+  return Standard_True;
+}
+
+
+//=======================================================================
+//function : GetBadShape
+//purpose  : Get shape where problems detected.
+//=======================================================================
+const TopoDS_Shape& BRepOffset_MakeOffset::GetBadShape() const
+{
+  return myBadShape;
+}
+
+
+//=======================================================================
+//function : checkSinglePoint
+//purpose  : Check single point on surface for bad normals
+//=======================================================================
+BRepOffset_Error checkSinglePoint(const Standard_Real theUParam,
+                                  const Standard_Real theVParam,
+                                  const Handle(Geom_Surface)& theSurf,
+                                  const NCollection_Vector<gp_Pnt>& theBadPoints)
+{
+  gp_Pnt aPnt;
+  gp_Vec aD1U, aD1V;
+  theSurf->D1(theUParam, theVParam, aPnt, aD1U, aD1V);
+
+  if (aD1U.SquareMagnitude() < Precision::SquareConfusion() ||
+      aD1V.SquareMagnitude() < Precision::SquareConfusion() )
+  {
+    Standard_Boolean isKnownBadPnt = Standard_False;
+    for(Standard_Integer anIdx  = theBadPoints.Lower();
+                         anIdx <= theBadPoints.Upper();
+                       ++anIdx)
+    {
+      if (aPnt.SquareDistance(theBadPoints(anIdx)) < Precision::SquareConfusion())
+      {
+        isKnownBadPnt = Standard_True;
+        break;
+      }
+    } // for(Standard_Integer anIdx  = theBadPoints.Lower();
+
+    if (!isKnownBadPnt)
+    {
+      return BRepOffset_BadNormalsOnGeometry;
+    }
+    else
+    {
+      return BRepOffset_NoError;
+    }
+  } //  if (aD1U.SquareMagnitude() < Precision::SquareConfusion() ||
+
+  if (aD1U.IsParallel(aD1V, Precision::Confusion()))
+  {
+    // Isolines are collinear.
+    return BRepOffset_BadNormalsOnGeometry;
+  }
+
+  return BRepOffset_NoError;
+}
diff --git a/src/BRepOffset/BRepOffset_MakeOffset.hxx b/src/BRepOffset/BRepOffset_MakeOffset.hxx
index ece1577e0d..c194998935 100644
--- a/src/BRepOffset/BRepOffset_MakeOffset.hxx
+++ b/src/BRepOffset/BRepOffset_MakeOffset.hxx
@@ -76,7 +76,7 @@ public:
   
   Standard_EXPORT const TopoDS_Shape& Shape() const;
   
-  //! returns information if IsDone() = FALSE.
+  //! returns information about offset state.
   Standard_EXPORT BRepOffset_Error Error() const;
   
   //! Returns <Image> containing links between initials
@@ -93,6 +93,18 @@ public:
   //! Returns the list of closing faces stores by AddFace
   Standard_EXPORT const TopTools_IndexedMapOfShape& ClosingFaces() const;
 
+  //! Makes pre analysis of possibility offset perform. Use method Error() to get more information.
+  //! Finds first error. List of checks:
+  //! 1) Check for existence object with non-null offset.
+  //! 2) Check for connectivity in offset shell.
+  //! 3) Check continuity of input surfaces.
+  //! 4) Check for normals existence on grid.
+  //! @return True if possible make computations and false otherwise.
+  Standard_EXPORT Standard_Boolean CheckInputData();
+
+  //! Return bad shape, which obtained in CheckInputData.
+  Standard_EXPORT const TopoDS_Shape& GetBadShape() const;
+
 
 
 
@@ -162,6 +174,7 @@ private:
   BRepOffset_Error myError;
   BRepOffset_MakeLoops myMakeLoops;
   Standard_Boolean myIsPerformSewing; // Handle bad walls in thicksolid mode.
+  TopoDS_Shape myBadShape;
 
 
 };
diff --git a/src/BRepTest/BRepTest_FeatureCommands.cxx b/src/BRepTest/BRepTest_FeatureCommands.cxx
index 97acc216d0..bca729d9fb 100644
--- a/src/BRepTest/BRepTest_FeatureCommands.cxx
+++ b/src/BRepTest/BRepTest_FeatureCommands.cxx
@@ -340,7 +340,48 @@ static Standard_Integer CONTROL(Draw_Interpretor& theCommands,
   }
   return 0;
 }
-      
+
+//=======================================================================
+//function : reportOffsetState
+//purpose  : Print state of offset operation by error code.
+//=======================================================================
+static void reportOffsetState(Draw_Interpretor& theCommands,
+                              const BRepOffset_Error theErrorCode)
+{
+  switch(theErrorCode)
+  {
+  case BRepOffset_NoError:
+    {
+      theCommands << "OK. Offset performed succesfully.";
+      break;
+    }
+  case BRepOffset_BadNormalsOnGeometry:
+    {
+      theCommands << "ERROR. Degenerated normal on input data.";
+      break;
+    }
+  case BRepOffset_C0Geometry:
+    {
+      theCommands << "ERROR. C0 continuity of input data.";
+      break;
+    }
+  case BRepOffset_NullOffset:
+    {
+      theCommands << "ERROR. Null offset of all faces.";
+      break;
+    }
+  case BRepOffset_NotConnectedShell:
+    {
+      theCommands << "ERROR. Incorrect set of faces to remove, the remaining shell is not connected.";
+      break;
+    }
+  default:
+    {
+      theCommands << "ERROR. offsetperform operation not done.";
+      break;
+    }
+  }
+}
 
 //=======================================================================
 //function : PRW
@@ -801,13 +842,9 @@ static Standard_Integer SPLS(Draw_Interpretor& ,
 //function : thickshell
 //purpose  : 
 //=======================================================================
-
-Standard_Integer thickshell(Draw_Interpretor& ,
-			    Standard_Integer n, const char** a)
+Standard_Integer thickshell(Draw_Interpretor& theCommands,
+  Standard_Integer n, const char** a)
 {
-
-  //OSD_Chronometer Clock;
-  
   if ( n < 4) return 1;
   TopoDS_Shape  S  = DBRep::Get(a[2]);
   if (S.IsNull()) return 1;
@@ -816,13 +853,13 @@ Standard_Integer thickshell(Draw_Interpretor& ,
 
   GeomAbs_JoinType JT= GeomAbs_Arc;
   if (n > 4)
-    {
-      if (!strcmp(a[4],"i"))
-	JT = GeomAbs_Intersection;
-      if (!strcmp(a[4],"t"))
-	JT = GeomAbs_Tangent;
-    }
-  
+  {
+    if (!strcmp(a[4],"i"))
+      JT = GeomAbs_Intersection;
+    if (!strcmp(a[4],"t"))
+      JT = GeomAbs_Tangent;
+  }
+
   Standard_Boolean Inter = Standard_False; //Standard_True;
   Standard_Real    Tol = Precision::Confusion();
   if (n > 5)
@@ -831,15 +868,12 @@ Standard_Integer thickshell(Draw_Interpretor& ,
   BRepOffset_MakeOffset B;
   B.Initialize(S,Of,Tol,BRepOffset_Skin,Inter,0,JT, Standard_True);
 
-//  Clock.Start();
-
   B.MakeOffsetShape();
-  //B.MakeThickSolid ();
 
-//  Clock.Show();
+  const BRepOffset_Error aRetCode = B.Error();
+  reportOffsetState(theCommands, aRetCode);
 
   DBRep::Set(a[1],B.Shape());
-
   return 0;
 }
 
@@ -848,12 +882,9 @@ Standard_Integer thickshell(Draw_Interpretor& ,
 //purpose  : 
 //=======================================================================
 
-Standard_Integer offsetshape(Draw_Interpretor& ,
-			     Standard_Integer n, const char** a)
+Standard_Integer offsetshape(Draw_Interpretor& theCommands,
+                             Standard_Integer n, const char** a)
 {
-
-  //OSD_Chronometer Clock;
-  
   if ( n < 4) return 1;
   TopoDS_Shape  S  = DBRep::Get(a[2]);
   if (S.IsNull()) return 1;
@@ -861,7 +892,8 @@ Standard_Integer offsetshape(Draw_Interpretor& ,
   Standard_Real    Of    = Draw::Atof(a[3]);
   Standard_Boolean Inter = (!strcmp(a[0],"offsetcompshape"));
   GeomAbs_JoinType JT= GeomAbs_Arc;
-  if (!strcmp(a[0],"offsetinter")) {
+  if (!strcmp(a[0],"offsetinter"))
+  {
     JT    = GeomAbs_Intersection;
     Inter = Standard_True;
   }
@@ -869,9 +901,11 @@ Standard_Integer offsetshape(Draw_Interpretor& ,
   BRepOffset_MakeOffset B;
   Standard_Integer      IB  = 4;
   Standard_Real         Tol = Precision::Confusion();
-  if (n > 4) {
+  if (n > 4)
+  {
     TopoDS_Shape  SF  = DBRep::Get(a[4],TopAbs_FACE);
-    if (SF.IsNull()) {
+    if (SF.IsNull())
+    {
       IB  = 5;
       Tol = Draw::Atof(a[4]);
     }
@@ -882,19 +916,21 @@ Standard_Integer offsetshape(Draw_Interpretor& ,
   //----------------------------------------
   Standard_Boolean YaBouchon = Standard_False;
 
-  for (Standard_Integer i = IB ; i < n; i++) {
+  for (Standard_Integer i = IB ; i < n; i++)
+  {
     TopoDS_Shape  SF  = DBRep::Get(a[i],TopAbs_FACE);
-    if (!SF.IsNull()) {
+    if (!SF.IsNull())
+    {
       YaBouchon = Standard_True;
       B.AddFace(TopoDS::Face(SF));
     }
   }
 
-//  Clock.Start();
-
   if (!YaBouchon)  B.MakeOffsetShape();
   else             B.MakeThickSolid ();
-//  Clock.Show();
+
+  const BRepOffset_Error aRetCode = B.Error();
+  reportOffsetState(theCommands, aRetCode);
 
   DBRep::Set(a[1],B.Shape());
 
@@ -1031,8 +1067,8 @@ Standard_Integer offsetperform(Draw_Interpretor& theCommands,
     }
   else
     {
-    theCommands << "ERROR. offsetperform operation not done.";
-    return 1;
+      const BRepOffset_Error aRetCode = TheOffset.Error();
+      reportOffsetState(theCommands, aRetCode);
     }
 
   return 0;
diff --git a/tests/bugs/modalg_2/bug21261_15 b/tests/bugs/modalg_2/bug21261_15
index c52710dab7..998fdb19ac 100755
--- a/tests/bugs/modalg_2/bug21261_15
+++ b/tests/bugs/modalg_2/bug21261_15
@@ -1,5 +1,6 @@
-puts "TODO OCC25916 ALL: \\*\\* Exception"
-puts "TODO OCC25916 ALL: An exception was caught"
+puts "TODO OCC25916 ALL: ERROR. C0 continuity of input data."
+puts "TODO OCC26556 ALL: result is not a topological shape!!!"
+puts "TODO OCC26556 ALL: Error: object with name 'result' does not exist!"
 puts "TODO OCC25916 ALL: TEST INCOMPLETE"
 puts "========"
 puts "OCC21261"
diff --git a/tests/bugs/modalg_2/bug21261_21 b/tests/bugs/modalg_2/bug21261_21
index 40f2e6134f..248dfeebd5 100755
--- a/tests/bugs/modalg_2/bug21261_21
+++ b/tests/bugs/modalg_2/bug21261_21
@@ -1,5 +1,6 @@
-puts "TODO OCC25916 ALL: \\*\\* Exception"
-puts "TODO OCC25916 ALL: An exception was caught"
+puts "TODO OCC25916 ALL: ERROR. Incorrect set of faces to remove, the remaining shell is not connected."
+puts "TODO OCC26556 ALL: result is not a topological shape!!!"
+puts "TODO OCC26556 ALL: Error: object with name 'result' does not exist!"
 puts "TODO OCC25916 ALL: TEST INCOMPLETE"
 puts "========"
 puts "OCC21261"
diff --git a/tests/bugs/modalg_2/bug427_6 b/tests/bugs/modalg_2/bug427_6
index 45c0cb1986..cefcb919b9 100755
--- a/tests/bugs/modalg_2/bug427_6
+++ b/tests/bugs/modalg_2/bug427_6
@@ -1,4 +1,5 @@
 puts "TODO OCC23068 ALL: ERROR. offsetperform operation not done."
+puts "TODO OCC23068 ALL: result is not a topological shape!!!"
 puts "TODO OCC23068 ALL: TEST INCOMPLETE"
 
 puts "========================"
diff --git a/tests/bugs/modalg_2/bug5805_3 b/tests/bugs/modalg_2/bug5805_3
index 9acee07be6..f262fc146b 100755
--- a/tests/bugs/modalg_2/bug5805_3
+++ b/tests/bugs/modalg_2/bug5805_3
@@ -1,3 +1,5 @@
+puts "TODO OCC26556 ALL: ERROR. offsetperform operation not done."
+
 puts "============"
 puts "OCC5805"
 puts "============"
diff --git a/tests/bugs/modalg_2/bug5805_4 b/tests/bugs/modalg_2/bug5805_4
index 85d9963f07..731cff9d0f 100755
--- a/tests/bugs/modalg_2/bug5805_4
+++ b/tests/bugs/modalg_2/bug5805_4
@@ -1,5 +1,4 @@
 puts "TODO OCC25925 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC25925 ALL: Faulty OCC5805 : offsetshape is wrong"
 puts "TODO OCC25925 ALL: Tcl Exception:"
 puts "TODO OCC25925 ALL: TEST INCOMPLETE"
 
diff --git a/tests/bugs/modalg_4/bug5806 b/tests/bugs/modalg_4/bug5806
index b4033a948b..eafe5fa7e3 100755
--- a/tests/bugs/modalg_4/bug5806
+++ b/tests/bugs/modalg_4/bug5806
@@ -1,3 +1,4 @@
+puts "TODO OCC25925 ALL: ERROR. offsetperform operation not done."
 puts "============"
 puts "OCC5806"
 puts "============"
diff --git a/tests/bugs/modalg_6/bug26556_1 b/tests/bugs/modalg_6/bug26556_1
new file mode 100644
index 0000000000..8fc715542c
--- /dev/null
+++ b/tests/bugs/modalg_6/bug26556_1
@@ -0,0 +1,18 @@
+puts "========"
+puts "OCC26556"
+puts "========"
+puts ""
+##################################################
+# Infinite calculations of BRepOffset_MakeOffset
+##################################################
+
+restore [locate_data_file OCC26556-004_extract_2015-01-C37_0216_res.brep] sh
+offsetparameter 1e-7 p i
+offsetload sh 300
+decho off
+set bug_info [offsetperform r]
+decho on
+
+if {$bug_info != "ERROR. Degenerated normal on input data."} {
+  puts "ERROR: OCC26556 is reproduced. Error message is absent."
+}
diff --git a/tests/bugs/modalg_6/bug26556_2 b/tests/bugs/modalg_6/bug26556_2
new file mode 100644
index 0000000000..ca9077a1ba
--- /dev/null
+++ b/tests/bugs/modalg_6/bug26556_2
@@ -0,0 +1,18 @@
+puts "========"
+puts "OCC26556"
+puts "========"
+puts ""
+##################################################
+# Infinite calculations of BRepOffset_MakeOffset
+##################################################
+
+restore [locate_data_file OCC26556-004_extract_2015-01-C37_0240_res.brep] sh
+offsetparameter 1e-7 p i
+offsetload sh 400
+decho off
+set bug_info [offsetperform r]
+decho on
+
+if {$bug_info != "ERROR. Degenerated normal on input data."} {
+  puts "ERROR: OCC26556 is reproduced. Error message is absent."
+}
diff --git a/tests/bugs/modalg_6/bug26556_3 b/tests/bugs/modalg_6/bug26556_3
new file mode 100644
index 0000000000..dd625dd130
--- /dev/null
+++ b/tests/bugs/modalg_6/bug26556_3
@@ -0,0 +1,18 @@
+puts "========"
+puts "OCC26556"
+puts "========"
+puts ""
+##################################################
+# Infinite calculations of BRepOffset_MakeOffset
+##################################################
+
+restore [locate_data_file OCC26556-004_extract_2015-01-C37_0213_res.brep] sh
+offsetparameter 1e-7 p i
+offsetload sh 80
+decho off
+set bug_info [offsetperform r]
+decho on
+
+if {$bug_info != "ERROR. Degenerated normal on input data."} {
+  puts "ERROR: OCC26556 is reproduced. Error message is absent."
+}
diff --git a/tests/bugs/modalg_6/bug26556_4 b/tests/bugs/modalg_6/bug26556_4
new file mode 100644
index 0000000000..888a60abf7
--- /dev/null
+++ b/tests/bugs/modalg_6/bug26556_4
@@ -0,0 +1,19 @@
+puts "========"
+puts "OCC26556"
+puts "========"
+puts ""
+##################################################
+# Infinite calculations of BRepOffset_MakeOffset
+##################################################
+
+restore [locate_data_file OCC26556-004_extract_2015-01-C37_0240_res.brep] sh
+explode sh F
+offsetparameter 1e-7 p i
+offsetload sh_3 300
+decho off
+set bug_info [offsetperform r]
+decho on
+
+if {$bug_info != "ERROR. Degenerated normal on input data."} {
+  puts "ERROR: OCC26556 is reproduced. Error message is absent."
+}
diff --git a/tests/offset/compshape/A1 b/tests/offset/compshape/A1
index 1b38f68c0e..c451741766 100644
--- a/tests/offset/compshape/A1
+++ b/tests/offset/compshape/A1
@@ -1,6 +1,6 @@
-puts "TODO ?OCC23068 ALL: Error\\s*:\\s*The offset is not valid. The volume is"
-puts "TODO ?OCC23068 ALL: result is not a topological shape"
-puts "TODO ?OCC24156 ALL: TEST INCOMPLETE"
+puts "TODO ?OCC23068 ALL: ERROR. offsetperform operation not done."
+puts "TODO ?OCC23068 ALL: result is not a topological shape!!!"
+puts "TODO ?OCC23068 ALL: TEST INCOMPLETE"
 
 ## ======================================
 ## Grid    : CCV002
diff --git a/tests/offset/compshape/A4 b/tests/offset/compshape/A4
index 77aece934c..f16e9e0081 100755
--- a/tests/offset/compshape/A4
+++ b/tests/offset/compshape/A4
@@ -4,11 +4,8 @@
 ## Comment : From CV tests serie page 60
 ## ======================================
 
-#puts "*"
-#puts "TODO OCC22740 ALL: An exception was caught"
-#puts "TODO OCC22740 ALL: \\*\\* Exception \\*\\*"
-#puts "TODO OCC22740 ALL: Error : The offset cannot be built."
 puts "TODO OCC23524 ALL: Error : The offset is not valid"
+puts "TODO ?OCC26556 ALL: ERROR. offsetperform operation not done."
 
 restore [locate_data_file CCV_2_d1_gsw.rle] s
 explode s F
diff --git a/tests/offset/faces_type_a/A3 b/tests/offset/faces_type_a/A3
index 210e597154..91edd572a5 100644
--- a/tests/offset/faces_type_a/A3
+++ b/tests/offset/faces_type_a/A3
@@ -1,6 +1,6 @@
 #old file ofcb19
 puts "TODO CR25925 ALL: ERROR. offsetperform operation not done."
-puts "TODO CR25925 ALL: TEST INCOMPLETE"
+puts "TODO CR26556 ALL: Error : The offset cannot be built."
 
 restore [locate_data_file CHE_bb17.rle] s
 OFFSETSHAPE -0.04 {s_4 s_9 s_3 s_5 s_2 s_7 s_11} $calcul $type
diff --git a/tests/offset/faces_type_a/A4 b/tests/offset/faces_type_a/A4
index fa94080530..518dea00c4 100644
--- a/tests/offset/faces_type_a/A4
+++ b/tests/offset/faces_type_a/A4
@@ -1,6 +1,6 @@
 #old file ofcb23
 puts "TODO CR25925 ALL: ERROR. offsetperform operation not done."
-puts "TODO CR25925 ALL: TEST INCOMPLETE"
+puts "TODO CR26556 ALL: Error : The offset cannot be built."
 
 restore [locate_data_file CHE_cc3.rle] s
 OFFSETSHAPE -0.01 {s_6} $calcul $type
diff --git a/tests/offset/faces_type_a/A9 b/tests/offset/faces_type_a/A9
index 906605fc37..59e36394cd 100644
--- a/tests/offset/faces_type_a/A9
+++ b/tests/offset/faces_type_a/A9
@@ -1,6 +1,6 @@
 #old file ofsb20
 puts "TODO CR25925 ALL: ERROR. offsetperform operation not done."
-puts "TODO CR25925 ALL: TEST INCOMPLETE"
+puts "TODO CR26556 ALL: Error : The offset cannot be built."
 
 restore [locate_data_file CHE_bb20.rle] s
 OFFSETSHAPE -0.1 {s_4 s_7} $calcul $type
diff --git a/tests/offset/faces_type_i/A9 b/tests/offset/faces_type_i/A9
index 3566dc61f2..c6d65c6945 100644
--- a/tests/offset/faces_type_i/A9
+++ b/tests/offset/faces_type_i/A9
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 pcone s 5 0 12 90
 trotate s 0 0 0 0 0 1 90
 
diff --git a/tests/offset/faces_type_i/B3 b/tests/offset/faces_type_i/B3
index 8e05374522..c8cbadd8fa 100644
--- a/tests/offset/faces_type_i/B3
+++ b/tests/offset/faces_type_i/B3
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 pcone s 5 0 12 270
 
diff --git a/tests/offset/faces_type_i/B4 b/tests/offset/faces_type_i/B4
index 7654915669..5363f0cb80 100644
--- a/tests/offset/faces_type_i/B4
+++ b/tests/offset/faces_type_i/B4
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 pcone s 5 0 12 270
 
diff --git a/tests/offset/faces_type_i/B5 b/tests/offset/faces_type_i/B5
index 9f8353d784..7d97464e41 100644
--- a/tests/offset/faces_type_i/B5
+++ b/tests/offset/faces_type_i/B5
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 pcone s 5 0 12 270
 
diff --git a/tests/offset/faces_type_i/B6 b/tests/offset/faces_type_i/B6
index 89d3d8cd64..e9f27fdaf8 100644
--- a/tests/offset/faces_type_i/B6
+++ b/tests/offset/faces_type_i/B6
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 psphere s 15 -90 60 90
 trotate s 0 0 0 0 0 1 90
diff --git a/tests/offset/faces_type_i/C1 b/tests/offset/faces_type_i/C1
index 96d4e75191..752586087b 100644
--- a/tests/offset/faces_type_i/C1
+++ b/tests/offset/faces_type_i/C1
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 psphere s 15 -90 60 270
 
diff --git a/tests/offset/faces_type_i/C2 b/tests/offset/faces_type_i/C2
index e0c5fa2095..7b9d0601e4 100644
--- a/tests/offset/faces_type_i/C2
+++ b/tests/offset/faces_type_i/C2
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 psphere s 15 -90 60 270
 
diff --git a/tests/offset/faces_type_i/C3 b/tests/offset/faces_type_i/C3
index 8618d70c32..d5572a13fc 100644
--- a/tests/offset/faces_type_i/C3
+++ b/tests/offset/faces_type_i/C3
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 psphere s 15 -90 60 270
 
diff --git a/tests/offset/faces_type_i/C7 b/tests/offset/faces_type_i/C7
index 7ecdbd8139..9f5d0d7f30 100644
--- a/tests/offset/faces_type_i/C7
+++ b/tests/offset/faces_type_i/C7
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 psphere s 15 90
 trotate s 0 0 0 0 0 1 90
diff --git a/tests/offset/faces_type_i/D1 b/tests/offset/faces_type_i/D1
index 338d87721b..9609133d05 100644
--- a/tests/offset/faces_type_i/D1
+++ b/tests/offset/faces_type_i/D1
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 psphere s 15 270
 
diff --git a/tests/offset/faces_type_i/D2 b/tests/offset/faces_type_i/D2
index 5e7b6786b1..ff784b5f35 100644
--- a/tests/offset/faces_type_i/D2
+++ b/tests/offset/faces_type_i/D2
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 psphere s 15 270
 
diff --git a/tests/offset/faces_type_i/D3 b/tests/offset/faces_type_i/D3
index f09583d38e..1545993117 100644
--- a/tests/offset/faces_type_i/D3
+++ b/tests/offset/faces_type_i/D3
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 psphere s 15 270
 
diff --git a/tests/offset/faces_type_i/E7 b/tests/offset/faces_type_i/E7
index 51943b2594..e57ede9a79 100755
--- a/tests/offset/faces_type_i/E7
+++ b/tests/offset/faces_type_i/E7
@@ -2,7 +2,7 @@ puts "TODO OCC24156 MacOS: \\*\\* Exception \\*\\*.*"
 puts "TODO OCC24156 MacOS: An exception was caught"
 puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 ellipse w1 0 0 0 15 10
 mkedge w1 w1 0 pi/2
diff --git a/tests/offset/faces_type_i/E8 b/tests/offset/faces_type_i/E8
index a061911737..2d4a927b15 100644
--- a/tests/offset/faces_type_i/E8
+++ b/tests/offset/faces_type_i/E8
@@ -2,7 +2,7 @@ puts "TODO OCC24156 MacOS: \\*\\* Exception \\*\\*.*"
 puts "TODO OCC24156 MacOS: An exception was caught"
 puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 ellipse w1 0 0 0 15 10
 mkedge w1 w1 0 pi/2
diff --git a/tests/offset/faces_type_i/E9 b/tests/offset/faces_type_i/E9
index 7332ff8b29..b2c36affeb 100644
--- a/tests/offset/faces_type_i/E9
+++ b/tests/offset/faces_type_i/E9
@@ -2,7 +2,7 @@ puts "TODO OCC24156 MacOS: \\*\\* Exception \\*\\*.*"
 puts "TODO OCC24156 MacOS: An exception was caught"
 puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 ellipse w1 0 0 0 15 10
 mkedge w1 w1 0 pi/2
diff --git a/tests/offset/faces_type_i/F1 b/tests/offset/faces_type_i/F1
index 453e5411fb..8fc7ae1ce1 100644
--- a/tests/offset/faces_type_i/F1
+++ b/tests/offset/faces_type_i/F1
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 ellipse w1 0 0 0 15 10
 mkedge w1 w1 0 pi/2
diff --git a/tests/offset/faces_type_i/F2 b/tests/offset/faces_type_i/F2
index 123ef2fb2d..6590cb9c16 100755
--- a/tests/offset/faces_type_i/F2
+++ b/tests/offset/faces_type_i/F2
@@ -2,7 +2,7 @@ puts "TODO OCC24156 MacOS: \\*\\* Exception \\*\\*.*"
 puts "TODO OCC24156 MacOS: An exception was caught"
 puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 ellipse w1 0 0 0 15 10
 mkedge w1 w1 0 pi/2
diff --git a/tests/offset/faces_type_i/F3 b/tests/offset/faces_type_i/F3
index b26f0c9747..e988509ebd 100644
--- a/tests/offset/faces_type_i/F3
+++ b/tests/offset/faces_type_i/F3
@@ -2,7 +2,7 @@ puts "TODO OCC24156 MacOS: \\*\\* Exception \\*\\*.*"
 puts "TODO OCC24156 MacOS: An exception was caught"
 puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 cpulimit 400
 
diff --git a/tests/offset/faces_type_i/F4 b/tests/offset/faces_type_i/F4
index a30edba4fd..66718bdab6 100644
--- a/tests/offset/faces_type_i/F4
+++ b/tests/offset/faces_type_i/F4
@@ -2,7 +2,7 @@ puts "TODO OCC24156 MacOS: \\*\\* Exception \\*\\*.*"
 puts "TODO OCC24156 MacOS: An exception was caught"
 puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 ellipse w1 0 0 0 15 10
 mkedge w1 w1 0 pi/2
diff --git a/tests/offset/faces_type_i/F5 b/tests/offset/faces_type_i/F5
index 9f6d43b98e..2bb88b021d 100644
--- a/tests/offset/faces_type_i/F5
+++ b/tests/offset/faces_type_i/F5
@@ -2,7 +2,7 @@ puts "TODO OCC24156 MacOS: \\*\\* Exception \\*\\*.*"
 puts "TODO OCC24156 MacOS: An exception was caught"
 puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 # 17.01.2010
 cpulimit 600
diff --git a/tests/offset/faces_type_i/I5 b/tests/offset/faces_type_i/I5
index 4333bf9667..dc23b60e1f 100644
--- a/tests/offset/faces_type_i/I5
+++ b/tests/offset/faces_type_i/I5
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 pcylinder s 5 10 270
 
diff --git a/tests/offset/faces_type_i/J5 b/tests/offset/faces_type_i/J5
index 32af5783d3..8d4a62c7fb 100644
--- a/tests/offset/faces_type_i/J5
+++ b/tests/offset/faces_type_i/J5
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 pcone s 9 4 15 270
 
diff --git a/tests/offset/faces_type_i/J7 b/tests/offset/faces_type_i/J7
index 13927555bd..d6dea78f92 100644
--- a/tests/offset/faces_type_i/J7
+++ b/tests/offset/faces_type_i/J7
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 pcone s 9 4 15 270
 
diff --git a/tests/offset/faces_type_i/K6 b/tests/offset/faces_type_i/K6
index dfc5677c11..e361f40f6d 100644
--- a/tests/offset/faces_type_i/K6
+++ b/tests/offset/faces_type_i/K6
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 ptorus s 10 10 0 45 270
 
diff --git a/tests/offset/faces_type_i/M6 b/tests/offset/faces_type_i/M6
index b03f64d19e..8e7c789065 100644
--- a/tests/offset/faces_type_i/M6
+++ b/tests/offset/faces_type_i/M6
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 circle w -20 0 0 20
 mkedge w w 0 pi*2/5
diff --git a/tests/offset/faces_type_i/M8 b/tests/offset/faces_type_i/M8
index 5aeb496166..79a232c3d3 100644
--- a/tests/offset/faces_type_i/M8
+++ b/tests/offset/faces_type_i/M8
@@ -1,5 +1,5 @@
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 circle w -20 0 0 20
 mkedge w w 0 pi*2/5
diff --git a/tests/offset/faces_type_i/N1 b/tests/offset/faces_type_i/N1
index b3ac6ab829..2c2eee4620 100644
--- a/tests/offset/faces_type_i/N1
+++ b/tests/offset/faces_type_i/N1
@@ -2,7 +2,7 @@ puts "TODO OCC24156 MacOS: \\*\\* Exception \\*\\*.*"
 puts "TODO OCC24156 MacOS: An exception was caught"
 puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
 puts "TODO OCC23748 ALL: ERROR. offsetperform operation not done."
-puts "TODO OCC23748 ALL: TEST INCOMPLETE"
+puts "TODO OCC26556 ALL: Error : The offset cannot be built."
 
 beziersurf c 3 2 \
 0 0 0 0 5 5 2 14 3 \
diff --git a/tests/offset/shape/A1 b/tests/offset/shape/A1
index 77f204a7e1..a85e2345f0 100644
--- a/tests/offset/shape/A1
+++ b/tests/offset/shape/A1
@@ -1,4 +1,5 @@
 puts "TODO OCC23068 ALL: Error : The offset is not valid"
+puts "TODO OCC26556 ALL: ERROR. offsetperform operation not done."
 # Original bug : hkg60144
 # Date : 17Juillet98
 
diff --git a/tests/offset/shape/A2 b/tests/offset/shape/A2
index 4c9ee74456..be2f2ded02 100644
--- a/tests/offset/shape/A2
+++ b/tests/offset/shape/A2
@@ -1,5 +1,5 @@
-puts "TODO OCC23190 ALL: An exception was caugh.*Offset with no C1 Surface"
-puts "TODO OCC23190 ALL: \\*\\* Exception \\*\\*.*Offset with no C1 Surface"
+puts "TODO OCC23190 ALL: ERROR. C0 continuity of input data."
+puts "TODO OCC23190 ALL: result is not a topological shape!!!"
 puts "TODO OCC23068 ALL: TEST INCOMPLETE"
 # Original bug : hkg60144/pro15325
 # Date : 17Juillet98
diff --git a/tests/offset/shape/A3 b/tests/offset/shape/A3
index 4d94a3b9bb..65f492c1b2 100644
--- a/tests/offset/shape/A3
+++ b/tests/offset/shape/A3
@@ -1,5 +1,5 @@
-puts "TODO OCC23190 ALL: An exception was caught.*Offset with no C1 Surface"
-puts "TODO OCC23190 ALL: \\*\\* Exception \\*\\*.*Offset with no C1 Surface"
+puts "TODO OCC23190 ALL: ERROR. C0 continuity of input data."
+puts "TODO OCC23190 ALL: result is not a topological shape!!!"
 puts "TODO OCC23068 ALL: TEST INCOMPLETE"
 # Original bug : cts21271
 # Date : 11Sept98