return (nbs < 2 ? 2 : nbs);
     }
     case GeomAbs_Torus: return 20;
+    default:
+      break;
   }
   return 10;
 }
     case GeomAbs_Torus:
     case GeomAbs_SurfaceOfRevolution:
     case GeomAbs_SurfaceOfExtrusion: return 15;
+    default:
+      break;
   }
   return 10;
 }
 
 }
 
 
-Adaptor3d_TopolTool::Adaptor3d_TopolTool () : nbRestr(0),idRestr(0),myNbSamplesU(-1)
+Adaptor3d_TopolTool::Adaptor3d_TopolTool () : myNbSamplesU(-1),nbRestr(0),idRestr(0)
                                               
 {
 }
 
     
     switch (SupportTypeShape1(i))
     {
+      case BRepExtrema_IsVertex:
+        break;
       case BRepExtrema_IsOnEdge:
         ParOnEdgeS1(i,r1);
         o << "parameter on the first edge :  t= " << r1 << endl;
     }
     switch (SupportTypeShape2(i))
     {
+      case BRepExtrema_IsVertex:
+        break;
       case BRepExtrema_IsOnEdge:
         ParOnEdgeS2(i,r1);
         o << "parameter on the second edge : t=" << r1 << endl;
 
           Perform( V1, F2, B1, B2 );
           break;
         }
+        default:
+          break;
       }
       break;
     }
           Perform( E1, F2, B1, B2 );
           break;
         }
+        default:
+          break;
       }
       break;
     }
           Perform( F1, F2, B1, B2 );
           break;
         }
+        default:
+          break;
       }
       break;
     }
+    default:
+      break;
   }
 }
 
 
   case GeomFill_IsDiscreteTrihedron:
     TLaw = new GeomFill_DiscreteTrihedron();
     break;
+  default:
+    break;
   }
   Handle(GeomFill_CurveAndTrihedron) Loc = 
     new (GeomFill_CurveAndTrihedron) (TLaw);
 
       WriteMessage (aStr + theFileName);
 #endif
       SetIsError(Standard_True);
-      SetStoreStatus(PCDM_SS_DiskWritingFailure);
+      SetStoreStatus(PCDM_SS_WriteFailure);
     }
 
   }
 
     case TNaming_MODIFY       : return 'M';
     case TNaming_DELETE       : return 'D';
     case TNaming_SELECTED     : return 'S';
-      //    case TNaming_REPLACE      : return 'R';
+    case TNaming_REPLACE      : return 'M'; // for compatibility case TNaming_REPLACE      : return 'R';
   default:
     Standard_DomainError::Raise("TNaming_Evolution:: Evolution Unknown");
   }
     case TNaming_SELECTED     : 
       aBuilder.Select(aNewShape, anOldShape); 
       break;
-      //    case TNaming_REPLACE      :
-      //      aBuilder.Replace(anOldShape, aNewShape); 
-      //      break;
+    case TNaming_REPLACE      :
+      aBuilder.Modify(anOldShape, aNewShape); // for compatibility aBuilder.Replace(anOldShape, aNewShape);
+      break;
       default :
         Standard_DomainError::Raise("TNaming_Evolution:: Evolution Unknown");
     }
 
 #include <BinMNaming.hxx>
 #include <TCollection_AsciiString.hxx>
 #include <TDF_Tool.hxx>
+
 #define  NULL_ENTRY "0:0"
-#define  OBSOLETE_NUM sizeof(Standard_Integer)
+#define  OBSOLETE_NUM (int)sizeof(Standard_Integer)
+
 //=======================================================================
 // 'Z' - is reserved for: forfidden to use
 //=======================================================================
 
   switch (T1)  {
     case IntSurf_In:  return TopAbs_FORWARD;
     case IntSurf_Out: return TopAbs_REVERSED;
+    default:
+      break;
   }
   return TopAbs_INTERNAL;
 }
 
       nbs/= U1-U0;
       if(nbs < 2.0) nbs = 2.;
       break;
+    default:
+      break;
   }
   if (nbs>50.)
     nbs = 50.;
 
     PCDM_StoreStatus theStatus = A->SaveAs(D,path);
     if (theStatus != PCDM_SS_OK ) {
       switch ( theStatus ) {
-      case PCDM_SS_DriverFailure: {
-       di << " could not store , no driver found to make it " <<"\n" ;
-       break ;
-      }
-      case PCDM_SS_WriteFailure: {
-       di << " Write access failure " << "\n" ;  
-       break;
-      }
-      case PCDM_SS_Failure: {
-       di << " Write failure " << "\n" ;  
-      }
+        case PCDM_SS_DriverFailure: {
+          di << "Error saving document: Could not store , no driver found to make it" << "\n";
+          break ;
+        }
+        case PCDM_SS_WriteFailure: {
+          di << "Error saving document: Write access failure" << "\n";
+          break;
+        }
+        case PCDM_SS_Failure: {
+          di << "Error saving document: Write failure" << "\n" ;
+          break;
+        }
+        case PCDM_SS_Doc_IsNull: {
+          di << "Error saving document: No document to save" << "\n";
+          break ;
+        }
+        case PCDM_SS_No_Obj: {
+          di << "Error saving document: No objects written" << "\n";
+          break;
+        }
+        case PCDM_SS_Info_Section_Error: {
+          di << "Error saving document: Write info section failure" << "\n" ;
+          break;
+        }
+        default:
+          break;
       }
       return 1;
     } else {
 
     }
     break;
   case TopAbs_VERTEX:
+  {
     const Handle(TNaming_NamedShape) aNS =  TNaming_Tool::NamedShape(SSh, theLab);
     if(!aNS.IsNull())
       if(SMap.Add(SSh)) {
 //     if(isPrimitive)
 //       TagMap.Bind(SSh, aNS->Label().Tag());
       }
+   }
+  break;
+    default:
     break;
-  }   
+  }
 }
 
 //=======================================================================
 
 
 };
 
-#define NUM_FONT_ENTRIES (sizeof(Font_FontMgr_MapOfFontsAliases)/sizeof(Font_FontMgr_FontAliasMapNode))
+#define NUM_FONT_ENTRIES (int)(sizeof(Font_FontMgr_MapOfFontsAliases)/sizeof(Font_FontMgr_FontAliasMapNode))
 
 #if (defined(_WIN32) || defined(__WIN32__))
 
 
       return LocalContinuity(myBspl->UDegree(), myBspl->NbUKnots(), TK, TM,
                              myUFirst, myULast, IsUPeriodic());
     }
-       case GeomAbs_OffsetSurface:
+    case GeomAbs_OffsetSurface:
     {
       switch(BasisSurface()->UContinuity())
       {
-        case GeomAbs_CN : return GeomAbs_CN; 
-        case GeomAbs_C2 : return GeomAbs_C1; 
-        case GeomAbs_C1 : return GeomAbs_C0;
+      case GeomAbs_CN :
+      case GeomAbs_C3 : return GeomAbs_CN;
+      case GeomAbs_G2 :
+      case GeomAbs_C2 : return GeomAbs_C1;
+      case GeomAbs_G1 :
+      case GeomAbs_C1 : return GeomAbs_C0;
+      case GeomAbs_C0 : break;
       }
       Standard_NoSuchObject::Raise("GeomAdaptor_Surface::UContinuity");
-         break;
+      break;
     }
-       case GeomAbs_SurfaceOfExtrusion:
+    case GeomAbs_SurfaceOfExtrusion:
     {
       GeomAdaptor_Curve GC
         ((*((Handle(Geom_SurfaceOfLinearExtrusion)*)&mySurface))->BasisCurve(),myUFirst,myULast);
       return GC.Continuity();
     }
-       case GeomAbs_OtherSurface: Standard_NoSuchObject::Raise("GeomAdaptor_Surface::UContinuity");
+    case GeomAbs_OtherSurface: 
+      Standard_NoSuchObject::Raise("GeomAdaptor_Surface::UContinuity");
+    case GeomAbs_Plane:
+    case GeomAbs_Cylinder:
+    case GeomAbs_Cone:
+    case GeomAbs_Sphere:
+    case GeomAbs_Torus:
+    case GeomAbs_BezierSurface:
+    case GeomAbs_SurfaceOfRevolution: break;
   }
   return GeomAbs_CN;
 }
       return LocalContinuity(myBspl->VDegree(), myBspl->NbVKnots(), TK, TM,
                              myVFirst, myVLast, IsVPeriodic());
     }
-       case GeomAbs_OffsetSurface:
+    case GeomAbs_OffsetSurface:
     {
       switch(BasisSurface()->VContinuity())
       {
-        case GeomAbs_CN : return GeomAbs_CN; 
-        case GeomAbs_C2 : return GeomAbs_C1;
-        case GeomAbs_C1 : return GeomAbs_C0;
+      case GeomAbs_CN : 
+      case GeomAbs_C3 : return GeomAbs_CN; 
+      case GeomAbs_G2 :
+      case GeomAbs_C2 : return GeomAbs_C1;
+      case GeomAbs_G1 :
+      case GeomAbs_C1 : return GeomAbs_C0;
+      case GeomAbs_C0 : break;
       }
       Standard_NoSuchObject::Raise("GeomAdaptor_Surface::VContinuity");
       break;
     }
-       case GeomAbs_SurfaceOfRevolution:
+    case GeomAbs_SurfaceOfRevolution:
     {
       GeomAdaptor_Curve GC
         ((*((Handle(Geom_SurfaceOfRevolution)*)&mySurface))->BasisCurve(),myVFirst,myVLast);
       return GC.Continuity();
     }
-       case GeomAbs_OtherSurface: Standard_NoSuchObject::Raise("GeomAdaptor_Surface::VContinuity");
+    case GeomAbs_OtherSurface:
+      Standard_NoSuchObject::Raise("GeomAdaptor_Surface::VContinuity");
+    case GeomAbs_Plane:
+    case GeomAbs_Cylinder:
+    case GeomAbs_Cone:
+    case GeomAbs_Sphere:
+    case GeomAbs_Torus:
+    case GeomAbs_BezierSurface:
+    case GeomAbs_SurfaceOfExtrusion: break;
   }
   return GeomAbs_CN;
 }
         (myBspl->VIso(myBspl->VKnot(myBspl->FirstVKnotIndex())),myUFirst,myULast);
       return myBasisCurve.NbIntervals(S);
     }
-       case GeomAbs_SurfaceOfExtrusion:
+         case GeomAbs_SurfaceOfExtrusion:
     {
       GeomAdaptor_Curve myBasisCurve
         ((*((Handle(Geom_SurfaceOfLinearExtrusion)*)&mySurface))->BasisCurve(),myUFirst,myULast);
         return myBasisCurve.NbIntervals(S);
       break;
     }
-       case GeomAbs_OffsetSurface:
+         case GeomAbs_OffsetSurface:
     {
       GeomAbs_Shape BaseS = GeomAbs_CN;
       switch(S)
         case GeomAbs_C0: BaseS = GeomAbs_C1; break;
         case GeomAbs_C1: BaseS = GeomAbs_C2; break;
         case GeomAbs_C2: BaseS = GeomAbs_C3; break;
+        case GeomAbs_C3:
+        case GeomAbs_CN: break;
       }
       GeomAdaptor_Surface Sur((*((Handle(Geom_OffsetSurface)*)&mySurface))->BasisSurface());
       return Sur.NbUIntervals(BaseS);
     }
+    case GeomAbs_Plane:
+    case GeomAbs_Cylinder:
+    case GeomAbs_Cone:
+    case GeomAbs_Sphere:
+    case GeomAbs_Torus:
+    case GeomAbs_BezierSurface:
+    case GeomAbs_OtherSurface:
+    case GeomAbs_SurfaceOfRevolution: break;
   }
   return 1;
 }
         (myBspl->UIso(myBspl->UKnot(myBspl->FirstUKnotIndex())),myVFirst,myVLast);
       return myBasisCurve.NbIntervals(S);
     }
-       case GeomAbs_SurfaceOfRevolution:
+         case GeomAbs_SurfaceOfRevolution:
     {
       GeomAdaptor_Curve myBasisCurve
         ((*((Handle(Geom_SurfaceOfRevolution)*)&mySurface))->BasisCurve(),myVFirst,myVLast);
         return myBasisCurve.NbIntervals(S);
       break;
     }
-       case GeomAbs_OffsetSurface:
+         case GeomAbs_OffsetSurface:
     {
       GeomAbs_Shape BaseS = GeomAbs_CN;
       switch(S)
         case GeomAbs_C0: BaseS = GeomAbs_C1; break;
         case GeomAbs_C1: BaseS = GeomAbs_C2; break;
         case GeomAbs_C2: BaseS = GeomAbs_C3; break;
+        case GeomAbs_C3:
+        case GeomAbs_CN: break;
       }
       GeomAdaptor_Surface Sur((*((Handle(Geom_OffsetSurface)*)&mySurface))->BasisSurface());
       return Sur.NbVIntervals(BaseS);
-       }
+         }
+    case GeomAbs_Plane:
+    case GeomAbs_Cylinder:
+    case GeomAbs_Cone:
+    case GeomAbs_Sphere:
+    case GeomAbs_Torus:
+    case GeomAbs_BezierSurface:
+    case GeomAbs_OtherSurface:
+    case GeomAbs_SurfaceOfExtrusion: break;
   }
   return 1;
 }
       myBasisCurve.Intervals(T,S);
       break;
     }
-       case GeomAbs_SurfaceOfExtrusion:
+         case GeomAbs_SurfaceOfExtrusion:
     {
       GeomAdaptor_Curve myBasisCurve
         ((*((Handle(Geom_SurfaceOfLinearExtrusion)*)&mySurface))->BasisCurve(),myUFirst,myULast);
       }
       break;
     }
-       case GeomAbs_OffsetSurface:
+         case GeomAbs_OffsetSurface:
     {
       GeomAbs_Shape BaseS = GeomAbs_CN;
       switch(S)
         case GeomAbs_C0: BaseS = GeomAbs_C1; break;
         case GeomAbs_C1: BaseS = GeomAbs_C2; break;
         case GeomAbs_C2: BaseS = GeomAbs_C3; break;
+        case GeomAbs_C3:
+        case GeomAbs_CN: break;
       }
       GeomAdaptor_Surface Sur((*((Handle(Geom_OffsetSurface)*)&mySurface))->BasisSurface());
       myNbUIntervals = Sur.NbUIntervals(BaseS);
       Sur.UIntervals(T, BaseS);
     }
+    case GeomAbs_Plane:
+    case GeomAbs_Cylinder:
+    case GeomAbs_Cone:
+    case GeomAbs_Sphere:
+    case GeomAbs_Torus:
+    case GeomAbs_BezierSurface:
+    case GeomAbs_OtherSurface:
+    case GeomAbs_SurfaceOfRevolution: break;
   }
 
   T(T.Lower()) = myUFirst;
       myBasisCurve.Intervals(T,S);
       break;
     }
-       case GeomAbs_SurfaceOfRevolution:
+         case GeomAbs_SurfaceOfRevolution:
     {
       GeomAdaptor_Curve myBasisCurve
         ((*((Handle(Geom_SurfaceOfRevolution)*)&mySurface))->BasisCurve(),myVFirst,myVLast);
       }
       break;
     }
-       case GeomAbs_OffsetSurface:
+         case GeomAbs_OffsetSurface:
     {
       GeomAbs_Shape BaseS = GeomAbs_CN;
       switch(S)
         case GeomAbs_C0: BaseS = GeomAbs_C1; break;
         case GeomAbs_C1: BaseS = GeomAbs_C2; break;
         case GeomAbs_C2: BaseS = GeomAbs_C3; break;
+        case GeomAbs_C3:
+        case GeomAbs_CN: break;
       }
       GeomAdaptor_Surface Sur((*((Handle(Geom_OffsetSurface)*)&mySurface))->BasisSurface());
       myNbVIntervals = Sur.NbVIntervals(BaseS);
       Sur.VIntervals(T, BaseS);
     }
+    case GeomAbs_Plane:
+    case GeomAbs_Cylinder:
+    case GeomAbs_Cone:
+    case GeomAbs_Sphere:
+    case GeomAbs_Torus:
+    case GeomAbs_BezierSurface:
+    case GeomAbs_OtherSurface:
+    case GeomAbs_SurfaceOfExtrusion: break;
   }
   
   T(T.Lower()) = myVFirst;
 
           case IntPatch_Ellipse:   Pmid = ElCLib::Value(pmid,GLine->Ellipse()); break;
           case IntPatch_Hyperbola: Pmid = ElCLib::Value(pmid,GLine->Hyperbola()); break;
           case IntPatch_Parabola:  Pmid = ElCLib::Value(pmid,GLine->Parabola()); break;
+          case IntPatch_Analytic:
+          case IntPatch_Walking:
+          case IntPatch_Restriction: break; // cases Analytic, Walking and Restriction are handled above
         }
         Parameters(myHS1,myHS2,Pmid,u1,v1,u2,v2);
         Recadre(myHS1,myHS2,u1,v1,u2,v2);
 
     case GeomAbs_Torus:
     case GeomAbs_SurfaceOfRevolution:
     case GeomAbs_SurfaceOfExtrusion: return 15;
+
+    case GeomAbs_OffsetSurface:
+    case GeomAbs_OtherSurface: return 10;
   }
   return 10;
 }
       if (!S->IsURational()) nbs *= 2;
       if (nbs < 4) nbs = 4;
       return nbs;
-       }
+         }
     case GeomAbs_Torus: return 20;
-    //case GeomAbs_Cylinder:
-    //case GeomAbs_Cone:
-    //case GeomAbs_Sphere:
-    //case GeomAbs_SurfaceOfRevolution:
-    //case GeomAbs_SurfaceOfExtrusion: return 10;
+
+    case GeomAbs_Cylinder:
+    case GeomAbs_Cone:
+    case GeomAbs_Sphere:
+    case GeomAbs_SurfaceOfRevolution:
+    case GeomAbs_SurfaceOfExtrusion:
+    case GeomAbs_OffsetSurface:
+    case GeomAbs_OtherSurface: return 10;
   }
   return 10;
 }
 
     case GeomAbs_Sphere:
       while(U1<(U1p-1.5*M_PI)) U1+=M_PI+M_PI;
       while(U1>(U1p+1.5*M_PI)) U1-=M_PI+M_PI;
+    default:
+      break;
   }
   switch(typeS2)
   { 
     case GeomAbs_Sphere:
       while(U2<(U2p-1.5*M_PI)) U2+=M_PI+M_PI;
       while(U2>(U2p+1.5*M_PI)) U2-=M_PI+M_PI;
+    default:
+      break;
   }
   pt.SetParameters(U1,V1,U2,V2);
 }
 
          }
       break;
     }
+  default:
+    break;
   }
 }
 //================================================================================
     nbR2++;
   }
   
-  printf("\nDUMP_INT:  ----empt:%2d  tgte:%2d  oppo:%2d ---------------------------------",empt,tgte,empt);
+  printf("\nDUMP_INT:  ----empt:%2ud  tgte:%2ud  oppo:%2ud ---------------------------------",empt,tgte,empt);
   Standard_Integer i,j,nbr1,nbr2,nbgl,nbgc,nbge,nbgp,nbgh,nbl,nbr,nbg,nbw,nba;
   nbl=nbr=nbg=nbw=nba=nbgl=nbge=nbr1=nbr2=nbgc=nbgp=nbgh=0;
   nbl=NbLines();
 
     IntSurf_Transition TLine;
     switch (traline1.TransitionType())
     {
-         case IntSurf_In: TLine.SetValue(Standard_False,IntSurf_Out); break;
-         case IntSurf_Out: TLine.SetValue(Standard_False,IntSurf_In); break;
-       }
+    case IntSurf_In: TLine.SetValue(Standard_False,IntSurf_Out); break;
+    case IntSurf_Out: TLine.SetValue(Standard_False,IntSurf_In); break;
+    default:
+      break;
+    }
     traline1=TLine;
     IntSurf_Transition TArc;
     switch (tra1.TransitionType())
     {
-         case IntSurf_In: TArc.SetValue(Standard_False,IntSurf_Out); break;
-         case IntSurf_Out: TArc.SetValue(Standard_False,IntSurf_In); break;
-       }
+    case IntSurf_In: TArc.SetValue(Standard_False,IntSurf_Out); break;
+    case IntSurf_Out: TArc.SetValue(Standard_False,IntSurf_In); break;
+    default:
+      break;
+    }
     tra1=TArc;
   }
   if(onS2)
     IntSurf_Transition TLine;
     switch (traline2.TransitionType())
     {
-         case IntSurf_In: TLine.SetValue(Standard_False,IntSurf_Out); break;
-         case IntSurf_Out: TLine.SetValue(Standard_False,IntSurf_In); break;
-       }
+    case IntSurf_In: TLine.SetValue(Standard_False,IntSurf_Out); break;
+    case IntSurf_Out: TLine.SetValue(Standard_False,IntSurf_In); break;
+    default:
+      break;
+    }
     traline2=TLine;
     IntSurf_Transition TArc;
     switch (tra2.TransitionType())
     {
-         case IntSurf_In: TArc.SetValue(Standard_False,IntSurf_Out); break;
-         case IntSurf_Out: TArc.SetValue(Standard_False,IntSurf_In); break;
-       }
+    case IntSurf_In: TArc.SetValue(Standard_False,IntSurf_Out); break;
+    case IntSurf_Out: TArc.SetValue(Standard_False,IntSurf_In); break;
+    default:
+      break;
+    }
     tra2=TArc;
   }  
 }
 
     case TNaming_SELECTED     : {
       Bld.Select(NewShape, OldShape); break;
     }
-    case TNaming_REPLACE      :{
+    case TNaming_REPLACE      : {
       //Bld.Replace(OldShape,NewShape); break;
       Bld.Modify(OldShape,NewShape); break;// for compatibility only
     }  
 
     case TNaming_MODIFY       : return 2;
     case TNaming_DELETE       : return 3;
     case TNaming_SELECTED     : return 4;
-      //case TNaming_REPLACE      : return 5;
+    case TNaming_REPLACE      : return 2; //case TNaming_REPLACE      : return 5; for compatibility
   default:
     Standard_DomainError::Raise("TNaming_Evolution; enum term unknown");
   }
 
 
 };
 
-#define FILE_ERR_TABLE_SIZE (  sizeof ( fileErrorTable ) / sizeof ( fileErrorTable[ 0 ] )  )
+#define FILE_ERR_TABLE_SIZE (int)(sizeof(fileErrorTable) / sizeof(fileErrorTable[0]))
 
 static ERROR_TABLE fileNodeErrorTable[] = {
 
 
     case TelTriangleFansArrayType:
       glColor3fv (theInteriorColour->rgb);
       break;
+    case TelUnknownArrayType:
+      break;
   }
 
   // Temporarily disable environment mapping
     case TelTriangleFansArrayType:
       myDrawMode = GL_TRIANGLE_FAN;
       break;
+    case TelUnknownArrayType:
+      break;
   }
 }
 
 
            SS_DriverFailure,
            SS_WriteFailure,
            SS_Failure,
-           SS_DiskWritingFailure,
-           SS_UserRightsFailure,
            SS_Doc_IsNull,
            SS_No_Obj,
            SS_Info_Section_Error
 
   PCDM_StoreStatus theStatus = A->Save(D, theStatusMessage);
   if (theStatus != PCDM_SS_OK ) {
     switch ( theStatus ) {
-    case PCDM_SS_DriverFailure: {
-      di << " Could not store , no driver found to make it " <<"\n" ;
-      break ;
-    }
-    case PCDM_SS_WriteFailure: {
-      di << " Write access failure " << "\n" ;
-      break;
-    }
-    case PCDM_SS_Failure: {
-      di << " Write failure " << "\n" ;
-    }
+      case PCDM_SS_DriverFailure: {
+        di << "Error saving document: Could not store , no driver found to make it" << "\n";
+        break ;
+      }
+      case PCDM_SS_WriteFailure: {
+        di << "Error saving document: Write access failure" << "\n";
+        break;
+      }
+      case PCDM_SS_Failure: {
+        di << "Error saving document: Write failure" << "\n" ;
+        break;
+      }
+      case PCDM_SS_Doc_IsNull: {
+        di << "Error saving document: No document to save" << "\n";
+        break ;
+      }
+      case PCDM_SS_No_Obj: {
+        di << "Error saving document: No objects written" << "\n";
+        break;
+      }
+      case PCDM_SS_Info_Section_Error: {
+        di << "Error saving document: Write info section failure" << "\n" ;
+        break;
+      }
+      default:
+          break;
     }
     return 1;
   }
   PCDM_StoreStatus theStatus = A->SaveAs(D,path, theStatusMessage);
   if (theStatus != PCDM_SS_OK ) {
     switch ( theStatus ) {
-    case PCDM_SS_DriverFailure: {
-      di << " Could not store , no driver found to make it " <<"\n" ;
-      break ;
-    }
-    case PCDM_SS_WriteFailure: {
-      di << " Write access failure " << "\n" ;
-      break;
-    }
-    case PCDM_SS_Failure: {
-      di << " Write failure " << "\n" ;
-    }
+      case PCDM_SS_DriverFailure: {
+        di << "Error saving document: Could not store , no driver found to make it" << "\n";
+        break ;
+      }
+      case PCDM_SS_WriteFailure: {
+        di << "Error saving document: Write access failure" << "\n";
+        break;
+      }
+      case PCDM_SS_Failure: {
+        di << "Error saving document: Write failure" << "\n" ;
+        break;
+      }
+      case PCDM_SS_Doc_IsNull: {
+        di << "Error saving document: No document to save" << "\n";
+        break ;
+      }
+      case PCDM_SS_No_Obj: {
+        di << "Error saving document: No objects written" << "\n";
+        break;
+      }
+      case PCDM_SS_Info_Section_Error: {
+        di << "Error saving document: Write info section failure" << "\n" ;
+        break;
+      }
+      default:
+          break;
     }
     return 1;
   }
 
     return "DELETE";
   case TNaming_SELECTED :
     return "SELECTED";
-//  case TNaming_REPLACE :
-//    return "REPLACE";
+  case TNaming_REPLACE :
+    return "MODIFY";
   }
   return "UNKNOWN_Evolution";
 }
 
       theBuilder.Modify(theOS, theNS);
       break;
     }
+    case TNaming_REPLACE :
+    {
+      theBuilder.Modify(theOS, theNS);
+      break;
+    } // for compatibility
 //  case TNaming_REPLACE :
 //    {
 //      theBuilder.Replace(theOS, theNS);
 
 #pragma warning(disable:4131 4244 4273 4267 4127)
 #endif
 
+// disable GCC warnings in flex code
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wunused-function"
+#endif
+
 %}
 %%
 "      "       {;}
 
 .TObj_Appl_SFailure
   Error saving document %s : general failure of persistence driver
   
-.TObj_Appl_SDiskWritingFailure
-  Error saving document %s : possibly the disk is full or other disk write problem occurred
-  
 .TObj_Appl_SDocIsNull
   Error saving document %s : No document to save
   
 
     case PCDM_SS_Failure:
       ErrorMessage (Message_Msg("TObj_Appl_SFailure") << aPath);
       break;
-    case PCDM_SS_DiskWritingFailure:
-      ErrorMessage (Message_Msg("TObj_Appl_SDiskWritingFailure") << aPath);
-      break;
     case PCDM_SS_Doc_IsNull:
       ErrorMessage (Message_Msg("TObj_Appl_SDocIsNull") << aPath);
       break;
 
   {
     case TopOpeBRep_CIRCLE  :
     case TopOpeBRep_ELLIPSE : return Standard_True;
+    default:
+      break;
   }
   return Standard_False;
 }
   switch (myTypeLineCurve)
   {
     case TopOpeBRep_WALKING : return myILW->NbPnts();
+    default:
+      break;
   }
   return 0;
 }
 
   void TopOpeBRepBuild_VertexInfo::Dump() const
 {
   printf(" *** Dump the Vertex Info ***\n");
-  printf(" mySmart  : %d\n", mySmart);
+  printf(" mySmart  : %ud\n", mySmart);
   printf(" Edges    : %d In, %d Out\n", myEdgesIn.Extent(), myEdgesOut.Extent());
   
   
 
 
 V3d_View::V3d_View(const Handle(V3d_Viewer)& VM, const V3d_TypeOfView Type ) :
 MyType ( Type ),
+MyProjModel(V3d_TPM_SCREEN),
 MyViewer(VM.operator->()),
 MyActiveLights(),
 MyViewContext (),
 myActiveLightsIterator(),
 SwitchSetFront(Standard_False),
-MyProjModel(V3d_TPM_SCREEN),
 MyTrsf (1, 4, 1, 4)         // S3892
 {
   myImmediateUpdate = Standard_False;
 
 V3d_View::V3d_View(const Handle(V3d_Viewer)& VM,const Handle(V3d_View)& V, const V3d_TypeOfView Type ) :
 MyType ( Type ),
+MyProjModel(V3d_TPM_SCREEN),
 MyViewer(VM.operator->()),
 MyActiveLights(),
 MyViewContext (),
 myActiveLightsIterator(),
 SwitchSetFront(Standard_False),
-MyTrsf (1, 4, 1, 4),                                    // S3892
-MyProjModel(V3d_TPM_SCREEN)
+MyTrsf (1, 4, 1, 4)                                    // S3892
 {
   Handle(Visual3d_View) FromView = V->View() ;
 
 
 
 #if defined(_WIN32) || defined(__WIN32__)
   const Handle(WNT_Window) THEWindow = Handle(WNT_Window)::DownCast (AWindow);
-  int TheSpecifiedWindowId = int (THEWindow->HWindow ());
+  Aspect_Handle TheSpecifiedWindowId = THEWindow->HWindow ();
 #elif defined(__APPLE__) && !defined(MACOSX_USE_GLX)
   const Handle(Cocoa_Window) THEWindow = Handle(Cocoa_Window)::DownCast (AWindow);
   NSView* TheSpecifiedWindowId = THEWindow->HView();
 const Handle(Aspect_Window) AspectWindow = (MyIterator.Value ())->Window ();
 #if defined(_WIN32) || defined(__WIN32__)
    const Handle(WNT_Window) theWindow = Handle(WNT_Window)::DownCast (AspectWindow);
-   int TheWindowIdOfView = int (theWindow->HWindow ());
+   Aspect_Handle TheWindowIdOfView = theWindow->HWindow ();
 #elif defined(__APPLE__) && !defined(MACOSX_USE_GLX)
    const Handle(Cocoa_Window) theWindow = Handle(Cocoa_Window)::DownCast (AspectWindow);
    NSView* TheWindowIdOfView = theWindow->HView();
 
             }
           }
           break;
+        default:
+          break;
         }
         
         if (aTShapeNode.IsNull() == Standard_False) {
 
           shape = aScene.GetShape(ShapeAppMap);
           break;
         }
-      case VrmlData_EmptyData:          aStr = "EmptyData"; break;
-      case VrmlData_UnrecoverableError: aStr = "UnrecoverableError"; break;
-      case VrmlData_GeneralError:       aStr = "GeneralError"; break;
-      case VrmlData_EndOfFile:          aStr = "EndOfFile"; break;
-      case VrmlData_NotVrmlFile:        aStr = "NotVrmlFile"; break;
-      case VrmlData_CannotOpenFile:     aStr = "CannotOpenFile"; break;
-      case VrmlData_VrmlFormatError:    aStr = "VrmlFormatError"; break;
-      case VrmlData_NumericInputError:  aStr = "NumericInputError"; break;
-      case VrmlData_IrrelevantNumber:   aStr = "IrrelevantNumber"; break;
-      case VrmlData_BooleanInputError:  aStr = "BooleanInputError"; break;
-      case VrmlData_StringInputError:   aStr = "StringInputError"; break;
-      case VrmlData_NodeNameUnknown:    aStr = "NodeNameUnknown"; break;
-      case VrmlData_NonPositiveSize:    aStr = "NonPositiveSize"; break;
-      case VrmlData_ReadUnknownNode:    aStr = "ReadUnknownNode"; break;
-      case VrmlData_NonSupportedFeature:aStr = "NonSupportedFeature"; break;
+      case VrmlData_EmptyData:            aStr = "EmptyData"; break;
+      case VrmlData_UnrecoverableError:   aStr = "UnrecoverableError"; break;
+      case VrmlData_GeneralError:         aStr = "GeneralError"; break;
+      case VrmlData_EndOfFile:            aStr = "EndOfFile"; break;
+      case VrmlData_NotVrmlFile:          aStr = "NotVrmlFile"; break;
+      case VrmlData_CannotOpenFile:       aStr = "CannotOpenFile"; break;
+      case VrmlData_VrmlFormatError:      aStr = "VrmlFormatError"; break;
+      case VrmlData_NumericInputError:    aStr = "NumericInputError"; break;
+      case VrmlData_IrrelevantNumber:     aStr = "IrrelevantNumber"; break;
+      case VrmlData_BooleanInputError:    aStr = "BooleanInputError"; break;
+      case VrmlData_StringInputError:     aStr = "StringInputError"; break;
+      case VrmlData_NodeNameUnknown:      aStr = "NodeNameUnknown"; break;
+      case VrmlData_NonPositiveSize:      aStr = "NonPositiveSize"; break;
+      case VrmlData_ReadUnknownNode:      aStr = "ReadUnknownNode"; break;
+      case VrmlData_NonSupportedFeature:  aStr = "NonSupportedFeature"; break;
+      case VrmlData_OutputStreamUndefined:aStr = "OutputStreamUndefined"; break;
+      case VrmlData_NotImplemented:       aStr = "NotImplemented"; break;
+      default:
+        break;
       }
       if (aStr) {
         di << " ++ VRML Error: " << aStr << " in line "
 
     case TNaming_SELECTED:
       aBld.Select(aNewShape, anOldShape);
       break;
+    case TNaming_REPLACE:
+      aBld.Modify(anOldShape,aNewShape);
+      break; // for compatibility
       //    case TNaming_REPLACE:
       //      aBld.Replace(anOldShape,aNewShape);
       //      break;
     case TNaming_MODIFY       : return ::EvolModifyString();
     case TNaming_DELETE       : return ::EvolDeleteString();
     case TNaming_SELECTED     : return ::EvolSelectedString();
-      //    case TNaming_REPLACE      : return ::EvolReplaceString();
+    case TNaming_REPLACE      : return ::EvolModifyString();  //    case TNaming_REPLACE      : return ::EvolReplaceString(); for compatibility
   default:
     Standard_DomainError::Raise("TNaming_Evolution; enum term unknown");
   }
 
 #include <Standard_Integer.hxx>
 
 // macro to get size of C array
-#define CARRAY_LENGTH(arr) (sizeof(arr)/sizeof(arr[0]))
+#define CARRAY_LENGTH(arr) (int)(sizeof(arr)/sizeof(arr[0]))
 
 void math_DoubleTab::Allocate()
 {
 
 #include <Standard_Failure.hxx>
 
 // macro to get size of C array
-#define CARRAY_LENGTH(arr) (sizeof(arr)/sizeof(arr[0]))
+#define CARRAY_LENGTH(arr) (int)(sizeof(arr)/sizeof(arr[0]))
 
 math_SingleTab::math_SingleTab(const Standard_Integer LowerIndex,
                               const Standard_Integer UpperIndex) :