diff --git a/src/Adaptor2d/Adaptor2d_Curve2d.cdl b/src/Adaptor2d/Adaptor2d_Curve2d.cdl
index ec83a3870d..70ccdaa66e 100644
--- a/src/Adaptor2d/Adaptor2d_Curve2d.cdl
+++ b/src/Adaptor2d/Adaptor2d_Curve2d.cdl
@@ -52,9 +52,6 @@ is
     --     Global methods - Apply to the whole curve.
     --     
     
-    Delete(me:out) is virtual;
-    ---C++: alias "Standard_EXPORT virtual ~Adaptor2d_Curve2d(){Delete();}"
-    
     FirstParameter(me) returns Real
     is virtual;
 
@@ -229,6 +226,8 @@ is
      raises 
     	NoSuchObject from Standard
      is virtual;
+
+     ---C++: alias "  Standard_EXPORT virtual ~Adaptor2d_Curve2d();"
      
 end Curve2d;
 
diff --git a/src/Adaptor2d/Adaptor2d_Curve2d.cxx b/src/Adaptor2d/Adaptor2d_Curve2d.cxx
index 7a0a83e014..f029cdaba6 100644
--- a/src/Adaptor2d/Adaptor2d_Curve2d.cxx
+++ b/src/Adaptor2d/Adaptor2d_Curve2d.cxx
@@ -17,8 +17,15 @@
 #include <Adaptor2d_Curve2d.ixx>
 #include <Standard_NotImplemented.hxx>
 
-void Adaptor2d_Curve2d::Delete()
-{}
+
+//=======================================================================
+//function : ~Adaptor2d_Curve2d
+//purpose  : Destructor
+//=======================================================================
+
+Adaptor2d_Curve2d::~Adaptor2d_Curve2d()
+{
+}
 
 //=======================================================================
 //function : FirstParameter
diff --git a/src/Adaptor3d/Adaptor3d_Curve.cdl b/src/Adaptor3d/Adaptor3d_Curve.cdl
index be3eaca68f..a204786f4a 100644
--- a/src/Adaptor3d/Adaptor3d_Curve.cdl
+++ b/src/Adaptor3d/Adaptor3d_Curve.cdl
@@ -54,9 +54,6 @@ is
     --     Global methods - Apply to the whole curve.
     --     
     
-    Delete(me:out) is virtual;
-    ---C++: alias "Standard_EXPORT virtual ~Adaptor3d_Curve(){Delete();}"
-    
     FirstParameter(me) returns Real
     is virtual;
 
@@ -245,6 +242,8 @@ is
      raises 
     	NoSuchObject from Standard
      is virtual;
+
+     ---C++: alias "  Standard_EXPORT virtual ~Adaptor3d_Curve();"
     
 end Curve;
 
diff --git a/src/Adaptor3d/Adaptor3d_Curve.cxx b/src/Adaptor3d/Adaptor3d_Curve.cxx
index 3798d75996..376c02f91f 100644
--- a/src/Adaptor3d/Adaptor3d_Curve.cxx
+++ b/src/Adaptor3d/Adaptor3d_Curve.cxx
@@ -17,8 +17,14 @@
 #include <Adaptor3d_Curve.ixx>
 #include <Standard_NotImplemented.hxx>
 
-void Adaptor3d_Curve::Delete()
-{}
+//=======================================================================
+//function : ~Adaptor3d_Curve
+//purpose  : Destructor
+//=======================================================================
+
+Adaptor3d_Curve::~Adaptor3d_Curve()
+{
+}
 
 //=======================================================================
 //function : FirstParameter
diff --git a/src/Adaptor3d/Adaptor3d_Surface.cdl b/src/Adaptor3d/Adaptor3d_Surface.cdl
index bf2c6caea0..1ddeb8ad41 100644
--- a/src/Adaptor3d/Adaptor3d_Surface.cdl
+++ b/src/Adaptor3d/Adaptor3d_Surface.cdl
@@ -62,9 +62,6 @@ is
     --     Global methods - Apply to the whole surface.
     --     
     
-    Delete(me:out) is virtual;
-    ---C++: alias "Standard_EXPORT virtual ~Adaptor3d_Surface(){Delete();}"
-    
     FirstUParameter(me) returns Real
     is virtual;
 
@@ -315,6 +312,8 @@ is
     raises 
        NoSuchObject from Standard -- only for Offset Surface
     is virtual;
+
+    ---C++: alias "  Standard_EXPORT virtual ~Adaptor3d_Surface();"
 	
 end Surface;
 
diff --git a/src/Adaptor3d/Adaptor3d_Surface.cxx b/src/Adaptor3d/Adaptor3d_Surface.cxx
index 79b84db182..7596ad6b3f 100644
--- a/src/Adaptor3d/Adaptor3d_Surface.cxx
+++ b/src/Adaptor3d/Adaptor3d_Surface.cxx
@@ -17,8 +17,14 @@
 #include <Adaptor3d_Surface.ixx>
 #include <Standard_NotImplemented.hxx>
 
-void Adaptor3d_Surface::Delete()
-{}
+//=======================================================================
+//function : ~Adaptor3d_Surface
+//purpose  : Destructor
+//=======================================================================
+
+Adaptor3d_Surface::~Adaptor3d_Surface()
+{
+}
 
 //=======================================================================
 //function : FirstUParameter
diff --git a/src/AppBlend/AppBlend_Approx.cdl b/src/AppBlend/AppBlend_Approx.cdl
index 65da8ebf9d..7a0e0eb733 100644
--- a/src/AppBlend/AppBlend_Approx.cdl
+++ b/src/AppBlend/AppBlend_Approx.cdl
@@ -35,13 +35,6 @@ raises NotDone     from StdFail,
 
 is
 
-
-
-    Delete(me:out) is virtual;
-    ---C++: alias "Standard_EXPORT virtual ~AppBlend_Approx(){Delete() ; }"
-    
-
-
     IsDone(me)
         returns Boolean from Standard	
 	is deferred;
@@ -204,5 +197,6 @@ is
 	raises NotDone from StdFail
         is deferred;    
                     
+    ---C++: alias "  Standard_EXPORT virtual ~AppBlend_Approx();"
 
 end Approx;
diff --git a/src/AppBlend/AppBlend_Approx.cxx b/src/AppBlend/AppBlend_Approx.cxx
index 7f74e9809d..71871392c7 100644
--- a/src/AppBlend/AppBlend_Approx.cxx
+++ b/src/AppBlend/AppBlend_Approx.cxx
@@ -16,5 +16,10 @@
 
 #include <AppBlend_Approx.ixx>
 
-void AppBlend_Approx::Delete()
-{}
+//=======================================================================
+//function : AppBlend_Approx
+//purpose  : Destructor
+//=======================================================================
+AppBlend_Approx::~AppBlend_Approx()
+{
+}
diff --git a/src/AppCont/AppCont_Function.hxx b/src/AppCont/AppCont_Function.hxx
index f82dd24253..7fec8b81bf 100644
--- a/src/AppCont/AppCont_Function.hxx
+++ b/src/AppCont/AppCont_Function.hxx
@@ -54,6 +54,7 @@ public:
     return myNbPnt2d;
   }
 
+  //! Destructor
   Standard_EXPORT virtual ~AppCont_Function() {}
 
   //! Returns the first parameter of the function.
diff --git a/src/AppParCurves/AppParCurves_MultiCurve.cdl b/src/AppParCurves/AppParCurves_MultiCurve.cdl
index 5a8a72edf6..56f554f1cc 100644
--- a/src/AppParCurves/AppParCurves_MultiCurve.cdl
+++ b/src/AppParCurves/AppParCurves_MultiCurve.cdl
@@ -80,11 +80,9 @@ is
 
     returns MultiCurve from AppParCurves
     raises ConstructionError from Standard;
-    
-    
-    Delete(me:out) is virtual;
-    ---C++: alias "Standard_EXPORT virtual ~AppParCurves_MultiCurve(){Delete();}"
-    
+
+    ---C++: alias "  Standard_EXPORT virtual ~AppParCurves_MultiCurve();"
+
     SetNbPoles(me: in out; nbPoles: Integer)
     	---Purpose: The number of poles of the MultiCurve 
     	--          will be set to <nbPoles>.
diff --git a/src/AppParCurves/AppParCurves_MultiCurve.cxx b/src/AppParCurves/AppParCurves_MultiCurve.cxx
index 15f44812b8..a40d02669a 100644
--- a/src/AppParCurves/AppParCurves_MultiCurve.cxx
+++ b/src/AppParCurves/AppParCurves_MultiCurve.cxx
@@ -40,8 +40,9 @@ AppParCurves_MultiCurve::AppParCurves_MultiCurve (const AppParCurves_Array1OfMul
 
 }
 
-void AppParCurves_MultiCurve::Delete()
-{}
+AppParCurves_MultiCurve::~AppParCurves_MultiCurve()
+{
+}
 
 Standard_Integer AppParCurves_MultiCurve::Dimension (const Standard_Integer Index) const {
   Standard_Integer Lo = tabPoint->Lower();
diff --git a/src/AppParCurves/AppParCurves_MultiPoint.cdl b/src/AppParCurves/AppParCurves_MultiPoint.cdl
index f03305e3e9..2687844e80 100644
--- a/src/AppParCurves/AppParCurves_MultiPoint.cdl
+++ b/src/AppParCurves/AppParCurves_MultiPoint.cdl
@@ -74,10 +74,8 @@ is
     	--          NbPoints is the total number of Points.
    
     returns MultiPoint from AppParCurves;   
-   
-	
-    Delete(me:out) is virtual;
-    ---C++: alias "Standard_EXPORT virtual ~AppParCurves_MultiPoint(){Delete();}"
+
+    ---C++: alias "  Standard_EXPORT virtual ~AppParCurves_MultiPoint();"
     
     SetPoint(me: in out; Index: Integer; Point: Pnt)
     	---Purpose: the 3d Point of range Index of this MultiPoint is 
diff --git a/src/AppParCurves/AppParCurves_MultiPoint.cxx b/src/AppParCurves/AppParCurves_MultiPoint.cxx
index c5f6e02ef1..96964b6679 100644
--- a/src/AppParCurves/AppParCurves_MultiPoint.cxx
+++ b/src/AppParCurves/AppParCurves_MultiPoint.cxx
@@ -99,8 +99,9 @@ AppParCurves_MultiPoint::AppParCurves_MultiPoint(const TColgp_Array1OfPnt&   tab
   }
 }
 
-void AppParCurves_MultiPoint::Delete()
-{}
+AppParCurves_MultiPoint::~AppParCurves_MultiPoint()
+{
+}
 
 void AppParCurves_MultiPoint::Transform(const Standard_Integer CuIndex,
 					const Standard_Real    x,
diff --git a/src/ApproxInt/ApproxInt_SvSurfaces.cdl b/src/ApproxInt/ApproxInt_SvSurfaces.cdl
index be385ba59a..00433dd45a 100644
--- a/src/ApproxInt/ApproxInt_SvSurfaces.cdl
+++ b/src/ApproxInt/ApproxInt_SvSurfaces.cdl
@@ -24,9 +24,6 @@ uses
 
 is 
 
-    Delete(me:out) is virtual;
-    ---C++: alias "Standard_EXPORT virtual ~ApproxInt_SvSurfaces(){Delete() ; }"
-    
     Compute(me: in out; 
             u1,v1,u2,v2: in out Real from Standard;
 	    Pt: out Pnt from gp;
@@ -52,7 +49,9 @@ is
     TangencyOnSurf2(me: in out;
     	            u1,v1,u2,v2: in Real from Standard;
 	            Tg: out Vec2d from gp)
-       returns Boolean from Standard is deferred;   
+       returns Boolean from Standard is deferred;
+
+    ---C++: alias "  Standard_EXPORT virtual ~ApproxInt_SvSurfaces();"
     
 end SvSurfaces;
 
diff --git a/src/ApproxInt/ApproxInt_SvSurfaces.cxx b/src/ApproxInt/ApproxInt_SvSurfaces.cxx
index 6629cc2887..f73cd50518 100644
--- a/src/ApproxInt/ApproxInt_SvSurfaces.cxx
+++ b/src/ApproxInt/ApproxInt_SvSurfaces.cxx
@@ -14,5 +14,10 @@
 
 #include <ApproxInt_SvSurfaces.ixx>
 
-void ApproxInt_SvSurfaces::Delete()
-{}
+//=======================================================================
+//function : ~ApproxInt_SvSurfaces
+//purpose  : Destructor
+//=======================================================================
+ApproxInt_SvSurfaces::~ApproxInt_SvSurfaces()
+{
+}
diff --git a/src/BRepPrim/BRepPrim_OneAxis.cdl b/src/BRepPrim/BRepPrim_OneAxis.cdl
index a4d1782763..5c74fe7b8f 100644
--- a/src/BRepPrim/BRepPrim_OneAxis.cdl
+++ b/src/BRepPrim/BRepPrim_OneAxis.cdl
@@ -67,9 +67,6 @@ raises
     OutOfRange
 
 is
-    Delete(me:out) is virtual ;
-    ---C++: alias ~
-    
     Initialize(B : Builder from BRepPrim; 
     	       A : Ax2 from gp; 
     	       VMin, VMax : Real from  Standard);
@@ -433,6 +430,8 @@ is
     raises DomainError -- if VMinInfinite()
     is static;
 
+    ---C++ : alias "  Standard_EXPORT virtual ~BRepPrim_OneAxis();"
+
 fields
     myBuilder  : Builder from BRepPrim   is protected;  
     myAxes     : Ax2 from gp;
diff --git a/src/BRepPrim/BRepPrim_OneAxis.cxx b/src/BRepPrim/BRepPrim_OneAxis.cxx
index 596dc949de..abaa8bb773 100644
--- a/src/BRepPrim/BRepPrim_OneAxis.cxx
+++ b/src/BRepPrim/BRepPrim_OneAxis.cxx
@@ -129,8 +129,14 @@ BRepPrim_OneAxis::BRepPrim_OneAxis(const BRepPrim_Builder& B,
 
 }
 
-void BRepPrim_OneAxis::Delete()
-{}
+//=======================================================================
+//function : ~BRepPrim_OneAxis
+//purpose  : Destructor
+//=======================================================================
+
+BRepPrim_OneAxis::~BRepPrim_OneAxis()
+{
+}
 
 //=======================================================================
 //function : SetMeridianOffset
diff --git a/src/BRepSweep/BRepSweep_NumLinearRegularSweep.cdl b/src/BRepSweep/BRepSweep_NumLinearRegularSweep.cdl
index 82688becc3..a795532bdb 100644
--- a/src/BRepSweep/BRepSweep_NumLinearRegularSweep.cdl
+++ b/src/BRepSweep/BRepSweep_NumLinearRegularSweep.cdl
@@ -81,15 +81,11 @@ is
 
     -- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
-    Delete(me:out) is virtual ;
-    ---C++: alias ~
-    
     Initialize(aBuilder  : Builder from BRepSweep;
 	       aGenShape : Shape from TopoDS;
 	       aDirWire  : NumShape from Sweep);
 	---Purpose: Creates a NumLinearRegularSweep.    <aBuilder>  gives
 	--          basic topological services.
-    
 
     -- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     --  Deferred Methods supporting the creation of the geometric part.
@@ -97,10 +93,10 @@ is
     -- """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     
     MakeEmptyVertex(me : in out; aGenV: Shape from TopoDS; aDirV: NumShape from Sweep)
-    returns Shape from TopoDS 
+    returns Shape from TopoDS is deferred;
 	---Purpose: Builds the vertex addressed by [aGenV,aDirV], with its
 	--          geometric part, but without subcomponents.
-    is deferred;
+    ---C++ : alias "  Standard_EXPORT virtual ~BRepSweep_NumLinearRegularSweep();"
     
     MakeEmptyDirectingEdge(me: in out; aGenV: Shape from TopoDS; aDirE: NumShape from Sweep)
     returns Shape from TopoDS
@@ -326,8 +322,7 @@ is
     
     
     Closed(me) returns Boolean from Standard is static;
-    
-    
+
 fields
 
     -- Topology builder.
diff --git a/src/BRepSweep/BRepSweep_NumLinearRegularSweep.cxx b/src/BRepSweep/BRepSweep_NumLinearRegularSweep.cxx
index 7a9d71a1a9..757a9e7f7b 100644
--- a/src/BRepSweep/BRepSweep_NumLinearRegularSweep.cxx
+++ b/src/BRepSweep/BRepSweep_NumLinearRegularSweep.cxx
@@ -62,8 +62,14 @@ BRepSweep_NumLinearRegularSweep::BRepSweep_NumLinearRegularSweep
   myBuiltShapes.Init(Standard_False); 
 }
 
-void BRepSweep_NumLinearRegularSweep::Delete()
-{}
+//=======================================================================
+//function : ~BRepSweep_NumLinearRegularSweep
+//purpose  : Destructor
+//=======================================================================
+
+BRepSweep_NumLinearRegularSweep::~BRepSweep_NumLinearRegularSweep()
+{
+}
 
 //=======================================================================
 //function : Shape
diff --git a/src/BRepSweep/BRepSweep_Translation.cdl b/src/BRepSweep/BRepSweep_Translation.cdl
index 1968023f58..14d8a4a5db 100644
--- a/src/BRepSweep/BRepSweep_Translation.cdl
+++ b/src/BRepSweep/BRepSweep_Translation.cdl
@@ -45,9 +45,6 @@ is
     raises
     	ConstructionError from Standard; -- if <V> is null
 
-    Delete(me:out) is redefined;
-    ---C++: alias "Standard_EXPORT virtual ~BRepSweep_Translation(){Delete() ; }"
-    
     -- """"""""""""""""""""""""""""""""""""""""""""""""""""""
     -- Methods supporting the creation of the geometric part.
     -- """"""""""""""""""""""""""""""""""""""""""""""""""""""
diff --git a/src/BRepSweep/BRepSweep_Translation.cxx b/src/BRepSweep/BRepSweep_Translation.cxx
index 64035738e7..95eaee2b3d 100644
--- a/src/BRepSweep/BRepSweep_Translation.cxx
+++ b/src/BRepSweep/BRepSweep_Translation.cxx
@@ -94,10 +94,6 @@ BRepSweep_Translation::BRepSweep_Translation(const TopoDS_Shape& S,
   Init();
 }
 
-void BRepSweep_Translation::Delete()
-{}
-
-
 //=======================================================================
 //function : MakeEmptyVertex
 //purpose  : 
diff --git a/src/BRepSweep/BRepSweep_Trsf.cdl b/src/BRepSweep/BRepSweep_Trsf.cdl
index 2f24b321e3..55caa03de2 100644
--- a/src/BRepSweep/BRepSweep_Trsf.cdl
+++ b/src/BRepSweep/BRepSweep_Trsf.cdl
@@ -42,10 +42,6 @@ uses
     Orientation from TopAbs
     
 is
-
-    Delete(me:out) is redefined;
-    ---C++: alias "Standard_EXPORT virtual ~BRepSweep_Trsf(){Delete() ; }"
-    
     Initialize(aBuilder  : Builder from BRep;
                aGenShape : Shape from TopoDS;
     	       aDirWire  : NumShape from Sweep;
diff --git a/src/BRepSweep/BRepSweep_Trsf.cxx b/src/BRepSweep/BRepSweep_Trsf.cxx
index e24f0b460d..b42f6f2ae2 100644
--- a/src/BRepSweep/BRepSweep_Trsf.cxx
+++ b/src/BRepSweep/BRepSweep_Trsf.cxx
@@ -40,10 +40,6 @@ BRepSweep_Trsf::BRepSweep_Trsf(const BRep_Builder& aBuilder,
 {
 }
 
-void BRepSweep_Trsf::Delete()
-{}
-
-
 void BRepSweep_Trsf::Init()
 {
   if(!myCopy){
diff --git a/src/DBC/DBC_BaseArray.cdl b/src/DBC/DBC_BaseArray.cdl
index 49e17114d5..548d9f4eaf 100644
--- a/src/DBC/DBC_BaseArray.cdl
+++ b/src/DBC/DBC_BaseArray.cdl
@@ -35,8 +35,7 @@ is
     ---Purpose: Creates an array which  is the copy of the given
     --          argument.
 
-    Delete ( me : out ) is redefined;
-    ---C++: alias "Standard_EXPORT virtual ~DBC_BaseArray(){Delete();}"
+    ---C++: alias "  Standard_EXPORT virtual ~DBC_BaseArray();"
 
     Length (me) returns Integer is static ;
     ---C++: inline
diff --git a/src/DBC/DBC_BaseArray.cxx b/src/DBC/DBC_BaseArray.cxx
index d7372449bb..11362bb700 100644
--- a/src/DBC/DBC_BaseArray.cxx
+++ b/src/DBC/DBC_BaseArray.cxx
@@ -163,8 +163,9 @@ DBC_BaseArray::DBC_BaseArray (const DBC_BaseArray& Other)
 
 }
 
-void DBC_BaseArray::Delete()
-{}
+DBC_BaseArray::~DBC_BaseArray()
+{
+}
 
 
 // --------------------------------------------------------------------
diff --git a/src/GeomFill/GeomFill_Profiler.cdl b/src/GeomFill/GeomFill_Profiler.cdl
index 4e998ee33c..6db39353e4 100644
--- a/src/GeomFill/GeomFill_Profiler.cdl
+++ b/src/GeomFill/GeomFill_Profiler.cdl
@@ -37,8 +37,7 @@ raises
 is
     Create returns Profiler from GeomFill;
     
-    Delete(me:out) is virtual;
-    ---C++: alias "Standard_EXPORT virtual ~GeomFill_Profiler(){Delete() ; }"
+    ---C++: alias "  Standard_EXPORT virtual ~GeomFill_Profiler();"
     
     AddCurve( me    : in out;
               Curve : in Curve from Geom)
diff --git a/src/GeomFill/GeomFill_Profiler.cxx b/src/GeomFill/GeomFill_Profiler.cxx
index 38c36ef3c8..8b8e703cdb 100644
--- a/src/GeomFill/GeomFill_Profiler.cxx
+++ b/src/GeomFill/GeomFill_Profiler.cxx
@@ -125,8 +125,9 @@ GeomFill_Profiler::GeomFill_Profiler()
 
 //=======================================================================
 
-void GeomFill_Profiler::Delete()
-{}
+GeomFill_Profiler::~GeomFill_Profiler()
+{
+}
 
 
 //=======================================================================
diff --git a/src/HatchGen/HatchGen_IntersectionPoint.cdl b/src/HatchGen/HatchGen_IntersectionPoint.cdl
index da809f55c3..3741d479ce 100644
--- a/src/HatchGen/HatchGen_IntersectionPoint.cdl
+++ b/src/HatchGen/HatchGen_IntersectionPoint.cdl
@@ -170,7 +170,9 @@ is
     
     	---Purpose: Dump of the point on element.
 
-    	is deferred ;
+    	is deferred;
+
+    ---C++: alias "  Standard_EXPORT virtual ~HatchGen_IntersectionPoint();"
 	
 
 fields
diff --git a/src/HatchGen/HatchGen_IntersectionPoint.cxx b/src/HatchGen/HatchGen_IntersectionPoint.cxx
index a2ab096030..60449c4925 100644
--- a/src/HatchGen/HatchGen_IntersectionPoint.cxx
+++ b/src/HatchGen/HatchGen_IntersectionPoint.cxx
@@ -32,6 +32,16 @@ HatchGen_IntersectionPoint::HatchGen_IntersectionPoint () :
 {
 }
 
+//=======================================================================
+// Function : ~HatchGen_IntersectionPoint
+// Purpose  : Destructor
+//=======================================================================
+
+HatchGen_IntersectionPoint::~HatchGen_IntersectionPoint()
+{
+}
+
+
 //=======================================================================
 // Function : SetIndex
 // Purpose  : Sets the index of the supporting curve.
diff --git a/src/HatchGen/HatchGen_PointOnHatching.cdl b/src/HatchGen/HatchGen_PointOnHatching.cdl
index e398cc6b9b..28166a4de4 100644
--- a/src/HatchGen/HatchGen_PointOnHatching.cdl
+++ b/src/HatchGen/HatchGen_PointOnHatching.cdl
@@ -58,11 +58,6 @@ is
       	---Category: PointOnHatching
 
     	returns PointOnHatching from HatchGen ;
-
-
-    Delete (me : out) is virtual;
-    ---C++: alias "Standard_EXPORT virtual ~HatchGen_PointOnHatching(){Delete();}"
-    ---Purpose: linux porting      
    
     AddPoint (me : in out ; Point     : PointOnElement from HatchGen ;
     	    	    	    Confusion : Real           from Standard)
diff --git a/src/HatchGen/HatchGen_PointOnHatching.cxx b/src/HatchGen/HatchGen_PointOnHatching.cxx
index e87a982354..e3795ee0e0 100644
--- a/src/HatchGen/HatchGen_PointOnHatching.cxx
+++ b/src/HatchGen/HatchGen_PointOnHatching.cxx
@@ -68,9 +68,6 @@ HatchGen_PointOnHatching::HatchGen_PointOnHatching (const IntRes2d_IntersectionP
   myPoints.Clear() ;
 }
 
-void HatchGen_PointOnHatching::Delete()
-{}
-
 //=======================================================================
 // Function : AddPoint
 // Purpose  : Adds a point on element to the point.
@@ -88,7 +85,6 @@ void HatchGen_PointOnHatching::AddPoint (const HatchGen_PointOnElement& Point,
   if (IPnt > NbPnt) myPoints.Append (Point) ;
 }
 
-
 //=======================================================================
 // Function : NbPoints
 // Purpose  : Returns the number of elements intersecting the hatching at
diff --git a/src/Interface/Interface_CopyTool.cdl b/src/Interface/Interface_CopyTool.cdl
index b04fddf4ae..46e066b988 100644
--- a/src/Interface/Interface_CopyTool.cdl
+++ b/src/Interface/Interface_CopyTool.cdl
@@ -192,8 +192,7 @@ is
     --           asked for copy by the user of CopyTool, not by copying
     --           another Entity)
 
-    Destroy (me: in out) is virtual;
-    ---C++: alias "Standard_EXPORT virtual ~Interface_CopyTool() { Destroy(); }"
+    ---C++: alias "  Standard_EXPORT virtual ~Interface_CopyTool();"
 
     fields
 
diff --git a/src/Interface/Interface_CopyTool.cxx b/src/Interface/Interface_CopyTool.cxx
index bad635d636..f1e891f9ed 100644
--- a/src/Interface/Interface_CopyTool.cxx
+++ b/src/Interface/Interface_CopyTool.cxx
@@ -325,4 +325,11 @@ Interface_CopyTool::Interface_CopyTool
   return iter;
 }
 
-void Interface_CopyTool::Destroy(){}
+//=======================================================================
+//function : ~Interface_CopyTool
+//purpose  : Destructor
+//=======================================================================
+
+Interface_CopyTool::~Interface_CopyTool()
+{
+}
diff --git a/src/OSD/OSD_Chronometer.cdl b/src/OSD/OSD_Chronometer.cdl
index dc18480d70..2cbcd4db10 100644
--- a/src/OSD/OSD_Chronometer.cdl
+++ b/src/OSD/OSD_Chronometer.cdl
@@ -42,8 +42,7 @@ is
   --
   ---Level: Public
 
-  Destroy ( me : out ) is virtual;
-  ---C++: alias ~
+  ---C++ : alias "  Standard_EXPORT virtual ~OSD_Chronometer();"
 
   Reset (me : in out) is virtual;
   ---Purpose: Stops and Reinitializes the Chronometer.
diff --git a/src/OSD/OSD_Chronometer.cxx b/src/OSD/OSD_Chronometer.cxx
index 6d95272d16..eaf34b4818 100644
--- a/src/OSD/OSD_Chronometer.cxx
+++ b/src/OSD/OSD_Chronometer.cxx
@@ -171,10 +171,10 @@ OSD_Chronometer::OSD_Chronometer(const Standard_Boolean ThisThreadOnly)
 }
 
 //=======================================================================
-//function :  Destroy
-//purpose  :
+//function : ~OSD_Chronometer
+//purpose  : Destructor
 //=======================================================================
-void OSD_Chronometer::Destroy ()
+OSD_Chronometer::~OSD_Chronometer()
 {
 }
 
diff --git a/src/ProjLib/ProjLib_Projector.cdl b/src/ProjLib/ProjLib_Projector.cdl
index 31a08580bf..b38fb5ea0d 100644
--- a/src/ProjLib/ProjLib_Projector.cdl
+++ b/src/ProjLib/ProjLib_Projector.cdl
@@ -42,8 +42,7 @@ is
      Create ;
 	---Purpose: Sets the type to OtherCurve
 	
-     Delete(me:out) is virtual;
-     ---C++: alias "Standard_EXPORT virtual ~ProjLib_Projector(){Delete() ; }"
+     ---C++: alias "  Standard_EXPORT virtual ~ProjLib_Projector();"
     
      IsDone(me) returns Boolean from Standard
      is static;
diff --git a/src/ProjLib/ProjLib_Projector.cxx b/src/ProjLib/ProjLib_Projector.cxx
index 5c1660b1b4..11c1a68fa7 100644
--- a/src/ProjLib/ProjLib_Projector.cxx
+++ b/src/ProjLib/ProjLib_Projector.cxx
@@ -28,13 +28,18 @@
 //=======================================================================
 
 ProjLib_Projector::ProjLib_Projector()
-{}
+{
+}
 
 
 //=======================================================================
-void ProjLib_Projector::Delete()
-{}
+//function : ~ProjLib_Projector
+//purpose  :  Destructor
+//=======================================================================
 
+ProjLib_Projector::~ProjLib_Projector()
+{
+}
 
 
 //=======================================================================
diff --git a/src/math/math_BFGS.cdl b/src/math/math_BFGS.cdl
index 5c004ccffe..d7eba03528 100644
--- a/src/math/math_BFGS.cdl
+++ b/src/math/math_BFGS.cdl
@@ -43,9 +43,7 @@ is
         -- function F.
     returns BFGS;
 
-    
-    Delete(me:out) is virtual;
-    	---C++: alias "Standard_EXPORT virtual ~math_BFGS(){Delete() ; }"
+    ---C++: alias "Standard_EXPORT virtual ~math_BFGS();"
     
     Perform(me: in out; F: in out MultipleVarFunctionWithGradient;
             StartingPoint: Vector)
diff --git a/src/math/math_BFGS.cxx b/src/math/math_BFGS.cxx
index 65e5b3a748..840a1b382e 100644
--- a/src/math/math_BFGS.cxx
+++ b/src/math/math_BFGS.cxx
@@ -281,8 +281,9 @@ void  math_BFGS::Perform(math_MultipleVarFunctionWithGradient& F,
     }
 
 
-    void math_BFGS::Delete()
-    {}
+    math_BFGS::~math_BFGS()
+    {
+    }
 
     void math_BFGS::Dump(Standard_OStream& o) const {
 
diff --git a/src/math/math_BissecNewton.cdl b/src/math/math_BissecNewton.cdl
index 070df9f7b6..e32d1ff143 100644
--- a/src/math/math_BissecNewton.cdl
+++ b/src/math/math_BissecNewton.cdl
@@ -51,8 +51,9 @@ is
     	-- The maximum number of iterations allowed is given by NbIterations.
 
     returns BissecNewton;
-    
-    
+
+    ---C++: alias "  Standard_EXPORT virtual ~math_BissecNewton();"    
+
     IsSolutionReached(me: in out; F: out FunctionWithDerivative)
     	---Purpose:    
     	-- This method is called at the end of each iteration to check if the
diff --git a/src/math/math_BissecNewton.cxx b/src/math/math_BissecNewton.cxx
index 7671523b19..b2d0c71bf1 100644
--- a/src/math/math_BissecNewton.cxx
+++ b/src/math/math_BissecNewton.cxx
@@ -15,6 +15,9 @@
 #include <math_BissecNewton.ixx>
 #include <math_FunctionWithDerivative.hxx>
 
+math_BissecNewton::~math_BissecNewton()
+{
+}
 
 void math_BissecNewton::Perform(math_FunctionWithDerivative& F,
 				const Standard_Real    Bound1,
diff --git a/src/math/math_BrentMinimum.cdl b/src/math/math_BrentMinimum.cdl
index 82584c47e1..2501732a3a 100644
--- a/src/math/math_BrentMinimum.cdl
+++ b/src/math/math_BrentMinimum.cdl
@@ -64,8 +64,9 @@ is
    	-- The maximum number of iterations allowed is given by NbIterations.
     
     returns BrentMinimum;
-    
-    
+
+    ---C++: alias "  Standard_EXPORT virtual ~math_BrentMinimum();"
+
     Perform(me: in out; F: in out Function; 
             Ax, Bx, Cx: Real)
     	---Purpose: 
@@ -85,11 +86,11 @@ is
     	-- solution is found.
     	-- It can be redefined in a sub-class to implement a specific test to
     	-- stop the iterations.
-    
+
     returns Boolean
     is virtual;
-    
-    
+
+
     IsDone(me)
     	---Purpose: Returns true if the computations are successful, otherwise returns false.
     	---C++: inline
diff --git a/src/math/math_BrentMinimum.cxx b/src/math/math_BrentMinimum.cxx
index 64d7eae833..a959769dec 100644
--- a/src/math/math_BrentMinimum.cxx
+++ b/src/math/math_BrentMinimum.cxx
@@ -23,6 +23,10 @@
 #define SIGN(a,b)     ((b) > 0.0 ? fabs(a) : -fabs(a))
 #define SHFT(a,b,c,d) (a)=(b);(b)=(c);(c)=(d)
 
+math_BrentMinimum::~math_BrentMinimum()
+{
+}
+
 void math_BrentMinimum::Perform(math_Function& F,
 				const Standard_Real    ax,
 				const Standard_Real    bx,
diff --git a/src/math/math_FRPR.cdl b/src/math/math_FRPR.cdl
index 82391407f1..43972e08a2 100644
--- a/src/math/math_FRPR.cdl
+++ b/src/math/math_FRPR.cdl
@@ -52,10 +52,8 @@ is
     	-- initialization to compute the minimum of the function.
     returns FRPR;
 
+    ---C++: alias "  Standard_EXPORT virtual ~math_FRPR();"
 
-    Delete(me:out) is virtual;
-    ---C++: alias "Standard_EXPORT virtual ~math_FRPR(){Delete();}"
-    
     Perform(me: in out; F: in out MultipleVarFunctionWithGradient; 
     	    StartingPoint: Vector)
 	---Purpose: Use this method after a call to the initialization constructor
diff --git a/src/math/math_FRPR.cxx b/src/math/math_FRPR.cxx
index a4c43c8006..a3776e4ab1 100644
--- a/src/math/math_FRPR.cxx
+++ b/src/math/math_FRPR.cxx
@@ -216,8 +216,9 @@ void  math_FRPR::Perform(math_MultipleVarFunctionWithGradient& F,
     }
 
 
-    void math_FRPR::Delete()
-    {}
+    math_FRPR::~math_FRPR()
+    {
+    }
 
     void math_FRPR::Dump(Standard_OStream& o) const {
 
diff --git a/src/math/math_FunctionSet.cdl b/src/math/math_FunctionSet.cdl
index 143220666e..36f5fdbac9 100644
--- a/src/math/math_FunctionSet.cdl
+++ b/src/math/math_FunctionSet.cdl
@@ -22,10 +22,6 @@ deferred class FunctionSet from math
 uses Vector from math
 
 is
-
-    Delete(me:out) is virtual;
-    	---C++: alias "Standard_EXPORT virtual ~math_FunctionSet(){Delete();}"
-    
     NbVariables(me)
     	---Purpose: Returns the number of variables of the function.
 
@@ -46,8 +42,7 @@ is
     	--          returns True if the computation was done successfully, 
     	--          False otherwise.
 
-    returns Boolean
-    is deferred;
+    returns Boolean is deferred;
     
 
     GetStateNumber(me: in out)
@@ -66,8 +61,9 @@ is
     	--          to save the current state of the function and to return
     	--          an Integer that allows retrieval of the state.
 
-    returns Integer
-    is virtual;
+    returns Integer is virtual;
+
+    ---C++: alias "  Standard_EXPORT virtual ~math_FunctionSet();"
     
 end FunctionSet;
 
diff --git a/src/math/math_FunctionSet.cxx b/src/math/math_FunctionSet.cxx
index c11253c087..a0da6765cc 100644
--- a/src/math/math_FunctionSet.cxx
+++ b/src/math/math_FunctionSet.cxx
@@ -15,7 +15,19 @@
 #include <Standard_Integer.hxx>
 #include <math_FunctionSet.ixx>
 
-Standard_Integer math_FunctionSet::GetStateNumber() { return 0; }
+//=======================================================================
+//function : ~math_FunctionSet
+//purpose  : Destructor
+//=======================================================================
+math_FunctionSet::~math_FunctionSet()
+{
+}
 
-void math_FunctionSet::Delete()
-{}
+//=======================================================================
+//function : GetStateNumber
+//purpose  : 
+//=======================================================================
+Standard_Integer math_FunctionSet::GetStateNumber()
+{
+  return 0;
+}
\ No newline at end of file
diff --git a/src/math/math_FunctionSetRoot.cdl b/src/math/math_FunctionSetRoot.cdl
index 3f9ef3d030..40213802fe 100644
--- a/src/math/math_FunctionSetRoot.cdl
+++ b/src/math/math_FunctionSetRoot.cdl
@@ -85,11 +85,8 @@ is
 
     returns FunctionSetRoot from math;
 
+    ---C++: alias "  Standard_EXPORT virtual ~math_FunctionSetRoot();"
 
-
-    Delete(me:out) is virtual;
-    ---C++: alias "Standard_EXPORT virtual ~math_FunctionSetRoot(){Delete();}"
-    
     SetTolerance(me: in out; Tolerance: Vector)
     	---Purpose: Initializes the tolerance values.
 
@@ -107,7 +104,7 @@ is
        -- not performed by the constructors.
 
     is static;
-    
+
 
     IsSolutionReached(me: in out; F: in out FunctionSetWithDerivatives)
     	---Purpose: This routine is called at the end of each iteration 
diff --git a/src/math/math_FunctionSetRoot.cxx b/src/math/math_FunctionSetRoot.cxx
index 11b249fa93..3facf61631 100644
--- a/src/math/math_FunctionSetRoot.cxx
+++ b/src/math/math_FunctionSetRoot.cxx
@@ -689,8 +689,9 @@ DF(1, F.NbEquations(),
   Perform(F, StartingPoint, InfBound, SupBound);
 }
 
-void math_FunctionSetRoot::Delete()
-{}
+math_FunctionSetRoot::~math_FunctionSetRoot()
+{
+}
 
 void math_FunctionSetRoot::SetTolerance(const math_Vector& Tolerance)
 {
diff --git a/src/math/math_FunctionWithDerivative.cdl b/src/math/math_FunctionWithDerivative.cdl
index a384065acb..19852ea83b 100644
--- a/src/math/math_FunctionWithDerivative.cdl
+++ b/src/math/math_FunctionWithDerivative.cdl
@@ -23,17 +23,12 @@ deferred class FunctionWithDerivative from math
 inherits Function
 
 is
-
-    Delete(me:out) is virtual;
-    	---C++: alias "Standard_EXPORT virtual ~math_FunctionWithDerivative(){Delete();}"
-    
     Value(me: in out; X: Real; F: out Real)
         ---Purpose: Computes the value <F>of the function for the variable <X>.
     	--          Returns True if the calculation were successfully done, 
     	--          False otherwise.
 
-    returns Boolean
-    is deferred;
+    returns Boolean is deferred;
  
     Derivative(me: in out; X: Real; D: out Real)
         ---Purpose: Computes the derivative <D> of the function 
@@ -41,8 +36,7 @@ is
     	--           Returns True if the calculation were successfully done, 
     	--           False otherwise.
 
-    returns Boolean
-    is deferred;    
+    returns Boolean is deferred;    
 
     Values(me: in out; X: Real; F, D: out Real)
     	---Purpose: Computes the value <F> and the derivative <D> of the 
@@ -50,7 +44,8 @@ is
     	--          Returns True if the calculation were successfully done,
     	--          False otherwise.
 
-    returns Boolean
-    is deferred;
+    returns Boolean is deferred;
+
+    ---C++: alias "  Standard_EXPORT virtual ~math_FunctionWithDerivative();"
     
 end FunctionWithDerivative;
diff --git a/src/math/math_FunctionWithDerivative.cxx b/src/math/math_FunctionWithDerivative.cxx
index 394ad6bb32..70e942c133 100644
--- a/src/math/math_FunctionWithDerivative.cxx
+++ b/src/math/math_FunctionWithDerivative.cxx
@@ -14,5 +14,10 @@
 
 #include <math_FunctionWithDerivative.ixx>
 
-void math_FunctionWithDerivative::Delete()
-{}
+//=======================================================================
+//function : ~math_FunctionWithDerivative
+//purpose  : Destructor
+//=======================================================================
+math_FunctionWithDerivative::~math_FunctionWithDerivative()
+{
+}
diff --git a/src/math/math_MultipleVarFunction.cdl b/src/math/math_MultipleVarFunction.cdl
index cb0d481d38..d20b70d88d 100644
--- a/src/math/math_MultipleVarFunction.cdl
+++ b/src/math/math_MultipleVarFunction.cdl
@@ -20,9 +20,6 @@ deferred class MultipleVarFunction from math
 uses Vector from math
 
 is
-    Delete(me:out) is virtual;
-    ---C++: alias "Standard_EXPORT virtual ~math_MultipleVarFunction(){Delete();}"
-
     NbVariables(me)
     	---Purpose:
         -- Returns the number of variables of the function
@@ -60,4 +57,6 @@ is
     returns Integer
     is virtual;
 
+    ---C++: alias "  Standard_EXPORT virtual ~math_MultipleVarFunction();"
+
 end MultipleVarFunction;
diff --git a/src/math/math_MultipleVarFunction.cxx b/src/math/math_MultipleVarFunction.cxx
index b1cb1877c3..473d885621 100644
--- a/src/math/math_MultipleVarFunction.cxx
+++ b/src/math/math_MultipleVarFunction.cxx
@@ -15,7 +15,19 @@
 #include <Standard_Integer.hxx>
 #include <math_MultipleVarFunction.ixx>
 
-Standard_Integer math_MultipleVarFunction::GetStateNumber() { return 0; }
+//=======================================================================
+//function : ~math_MultipleVarFunction
+//purpose  : Destructor
+//=======================================================================
+math_MultipleVarFunction::~math_MultipleVarFunction()
+{
+}
 
-void math_MultipleVarFunction::Delete()
-{}
+//=======================================================================
+//function : GetStateNumber
+//purpose  : 
+//=======================================================================
+Standard_Integer math_MultipleVarFunction::GetStateNumber()
+{
+  return 0;
+}
diff --git a/src/math/math_MultipleVarFunctionWithGradient.cdl b/src/math/math_MultipleVarFunctionWithGradient.cdl
index 8804416238..9749f13258 100644
--- a/src/math/math_MultipleVarFunctionWithGradient.cdl
+++ b/src/math/math_MultipleVarFunctionWithGradient.cdl
@@ -23,15 +23,10 @@ inherits MultipleVarFunction
 uses Vector from math
 
 is
-
-    Delete(me:out) is redefined virtual;
-    ---C++: alias "Standard_EXPORT virtual ~math_MultipleVarFunctionWithGradient(){Delete();}"
-    
     NbVariables(me)
     	---Purpose: Returns the number of variables of the function.
 
-    returns Integer
-    is deferred;
+    returns Integer is deferred;
 
 
     Value(me: in out; X: Vector; F: out Real)
@@ -39,8 +34,7 @@ is
     	--          Returns True if the computation was done successfully, 
     	--          False otherwise.
 
-    returns Boolean
-    is deferred;
+    returns Boolean is deferred;
     
     
     Gradient(me: in out; X: Vector; G: out Vector)
@@ -48,8 +42,7 @@ is
     	--         Returns True if the computation was done successfully, 
     	--         False otherwise.
 
-    returns Boolean
-    is deferred;
+    returns Boolean is deferred;
     
     
     Values(me: in out; X: Vector; F: out Real; G: out Vector)
@@ -58,7 +51,6 @@ is
     	--          Returns True if the computation was done successfully, 
     	--          False otherwise.
 
-    returns Boolean
-    is deferred;
+    returns Boolean is deferred;
     
 end MultipleVarFunctionWithGradient;
diff --git a/src/math/math_MultipleVarFunctionWithGradient.cxx b/src/math/math_MultipleVarFunctionWithGradient.cxx
deleted file mode 100644
index dcfdae7fdd..0000000000
--- a/src/math/math_MultipleVarFunctionWithGradient.cxx
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (c) 1997-1999 Matra Datavision
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#include <math_MultipleVarFunctionWithGradient.ixx>
-
-void math_MultipleVarFunctionWithGradient::Delete()
-{}
diff --git a/src/math/math_MultipleVarFunctionWithHessian.cdl b/src/math/math_MultipleVarFunctionWithHessian.cdl
index b20035f2ec..65b4569332 100644
--- a/src/math/math_MultipleVarFunctionWithHessian.cdl
+++ b/src/math/math_MultipleVarFunctionWithHessian.cdl
@@ -23,15 +23,10 @@ uses Matrix from math,
      Vector from math
 
 is
-
-    Delete(me:out) is redefined virtual;
-    ---C++: alias "Standard_EXPORT virtual ~math_MultipleVarFunctionWithHessian(){Delete();}"
-
     NbVariables(me)
     	---Purpose: returns the number of variables of the function.
 
-    returns Integer
-    is deferred;
+    returns Integer is deferred;
 
 
     Value(me: in out; X: Vector; F: out Real)
@@ -40,8 +35,7 @@ is
     	--          Returns True if the computation was done successfully, 
     	--          False otherwise.
 
-    returns Boolean
-    is deferred;
+    returns Boolean is deferred;
     
     
     Gradient(me: in out; X: Vector; G: out Vector)
@@ -50,8 +44,7 @@ is
     	--         Returns True if the computation was done successfully, 
     	--         False otherwise.
 
-    returns Boolean
-    is deferred;
+    returns Boolean is deferred;
     
     
     Values(me: in out; X: Vector; F: out Real; G: out Vector)
@@ -60,8 +53,7 @@ is
     	--          Returns True if the computation was done successfully, 
     	--          False otherwise.
 
-    returns Boolean
-    is deferred;
+    returns Boolean is deferred;
     
     Values(me: in out; X: Vector; F: out Real; G: out Vector; H: out Matrix)
     	---Purpose: computes the value  <F>, the gradient <G> and  the
@@ -69,8 +61,6 @@ is
     	--          Returns  True  if  the computation  was  done
     	--          successfully, False otherwise.
 
-    returns Boolean
-    is deferred;
-
+    returns Boolean is deferred;
 
 end MultipleVarFunctionWithHessian;
diff --git a/src/math/math_MultipleVarFunctionWithHessian.cxx b/src/math/math_MultipleVarFunctionWithHessian.cxx
deleted file mode 100644
index 2c0044e33a..0000000000
--- a/src/math/math_MultipleVarFunctionWithHessian.cxx
+++ /dev/null
@@ -1,20 +0,0 @@
-// Created on: 1996-05-03
-// Created by: Philippe MANGIN
-// Copyright (c) 1996-1999 Matra Datavision
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#include <math_MultipleVarFunctionWithHessian.ixx>
-
-void math_MultipleVarFunctionWithHessian::Delete()
-{}
diff --git a/src/math/math_NewtonFunctionSetRoot.cdl b/src/math/math_NewtonFunctionSetRoot.cdl
index 89404647f4..69a9f27f93 100644
--- a/src/math/math_NewtonFunctionSetRoot.cdl
+++ b/src/math/math_NewtonFunctionSetRoot.cdl
@@ -88,8 +88,7 @@ is
     returns NewtonFunctionSetRoot;
 
 
-    Delete(me:out) is virtual;
-    	---C++: alias "Standard_EXPORT virtual ~math_NewtonFunctionSetRoot(){Delete();}"
+    ---C++: alias "  Standard_EXPORT virtual ~math_NewtonFunctionSetRoot();"
     
     SetTolerance(me: in out; XTol: Vector)
     	---Purpose: Initializes the tolerance values for the unknowns.
diff --git a/src/math/math_NewtonFunctionSetRoot.cxx b/src/math/math_NewtonFunctionSetRoot.cxx
index 1ba031721e..57fffeea48 100644
--- a/src/math/math_NewtonFunctionSetRoot.cxx
+++ b/src/math/math_NewtonFunctionSetRoot.cxx
@@ -130,8 +130,9 @@ math_NewtonFunctionSetRoot::math_NewtonFunctionSetRoot
   Perform(F, StartingPoint, InfBound, SupBound);
 }
 
-void math_NewtonFunctionSetRoot::Delete()
-{}
+math_NewtonFunctionSetRoot::~math_NewtonFunctionSetRoot()
+{
+}
 
 void math_NewtonFunctionSetRoot::SetTolerance
                               (const math_Vector& XTol)
diff --git a/src/math/math_NewtonMinimum.cdl b/src/math/math_NewtonMinimum.cdl
index 91f0de78e8..dc8bac1651 100644
--- a/src/math/math_NewtonMinimum.cdl
+++ b/src/math/math_NewtonMinimum.cdl
@@ -60,8 +60,7 @@ is
     --  Warning: This constructor do not computation 
     returns  NewtonMinimum;
     
-    Delete(me:out) is virtual;
-    ---C++: alias "Standard_EXPORT virtual ~math_NewtonMinimum(){Delete();}"
+    ---C++: alias "  Standard_EXPORT virtual ~math_NewtonMinimum();"
     
     Perform(me: in out; F: in out MultipleVarFunctionWithHessian;
     	    StartingPoint: Vector)
diff --git a/src/math/math_NewtonMinimum.cxx b/src/math/math_NewtonMinimum.cxx
index 547e94f64b..11f64f6fe1 100644
--- a/src/math/math_NewtonMinimum.cxx
+++ b/src/math/math_NewtonMinimum.cxx
@@ -69,8 +69,10 @@ math_NewtonMinimum::math_NewtonMinimum(math_MultipleVarFunctionWithHessian& F,
        TheStatus = math_NotBracketed;
 }
 //============================================================================
-void math_NewtonMinimum::Delete()
-{}
+math_NewtonMinimum::~math_NewtonMinimum()
+{
+}
+
 //============================================================================
 void math_NewtonMinimum::Perform(math_MultipleVarFunctionWithHessian& F,
 				 const math_Vector& StartingPoint)
diff --git a/src/math/math_Powell.cdl b/src/math/math_Powell.cdl
index cea49c9b45..a315b07267 100644
--- a/src/math/math_Powell.cdl
+++ b/src/math/math_Powell.cdl
@@ -48,10 +48,8 @@ is
     	--          of this class.
 
     returns Powell;
-    
-    
-    Delete(me:out) is virtual;
-    	---C++: alias "Standard_EXPORT virtual ~math_Powell(){Delete();}"
+
+    ---C++: alias "  Standard_EXPORT virtual ~math_Powell();"
     
     Perform(me: in out;F: in out MultipleVarFunction;
     	    StartingPoint: Vector;
diff --git a/src/math/math_Powell.cxx b/src/math/math_Powell.cxx
index 809c309cd7..f0cea92b2e 100644
--- a/src/math/math_Powell.cxx
+++ b/src/math/math_Powell.cxx
@@ -104,7 +104,9 @@ static Standard_Boolean MinimizeDirection(math_Vector& P,
   return Standard_False;
 }
 
-
+math_Powell::~math_Powell()
+{
+}
 
 void math_Powell::Perform(math_MultipleVarFunction& F,
 			  const math_Vector& StartingPoint,
@@ -231,10 +233,7 @@ math_Powell::math_Powell(math_MultipleVarFunction& F,
     XTol = Tolerance;
     EPSZ = ZEPS;
     Itermax = NbIterations;
-  }
-
-void math_Powell::Delete()
-{}
+}
 
 void math_Powell::Dump(Standard_OStream& o) const {