diff --git a/modules/mol/base/pymod/export_residue.cc b/modules/mol/base/pymod/export_residue.cc
index a006f26912f394db04f48096f5fdbbca6374e2b8..dcebad59fdaaea6d1bf017586788db2c840fe9c0 100644
--- a/modules/mol/base/pymod/export_residue.cc
+++ b/modules/mol/base/pymod/export_residue.cc
@@ -113,6 +113,10 @@ void export_Residue()
     .def(self<=self)
     .def(self==self)
     .def(self!=self)    
+    .def(self+=self)
+    .def(self-=self)
+    .def(self+self)
+    .def(self-self)
     .def(self+=int())
     .def(self-=int())
     .def(self+int())
diff --git a/modules/mol/base/src/residue_prop.hh b/modules/mol/base/src/residue_prop.hh
index 168c9744c44c7c7188f1259a6ff33eabeed85a1b..e86eef5f11b16ba4eed55153e0cb38901faedd1e 100644
--- a/modules/mol/base/src/residue_prop.hh
+++ b/modules/mol/base/src/residue_prop.hh
@@ -28,9 +28,10 @@ namespace ost { namespace mol {
 
 class DLLEXPORT ResNum: private
     boost::additive<ResNum, int,
+    boost::additive<ResNum,
     boost::totally_ordered<ResNum, 
     boost::totally_ordered<ResNum, int,
-    boost::unit_steppable<ResNum> > > >
+    boost::unit_steppable<ResNum> > > > >
 {
 public:
   ResNum(int n):
@@ -74,16 +75,6 @@ public:
     num_-=r.num_;
     return num_;
   }
-
-  ResNum operator+(const ResNum& r)
-  {
-    return ResNum(num_+r.num_);
-  }
-  
-  ResNum operator-(const ResNum& r)
-  {
-    return ResNum(num_-r.num_);
-  }
   
   ResNum& operator++()
   {