diff --git a/modules/mol/base/pymod/export_editors.cc b/modules/mol/base/pymod/export_editors.cc
index 2a59feef9f8527366fdb3cd122d8e01fc87abf38..eb1720a1de10dcfde86e1ba7c47105bd4e4368be 100644
--- a/modules/mol/base/pymod/export_editors.cc
+++ b/modules/mol/base/pymod/export_editors.cc
@@ -215,6 +215,7 @@ void export_Editors()
     .def("SetChainType", &EditorBase::SetChainType)
     .def("SetChainDescription", &EditorBase::SetChainDescription)
     .def("RenameResidue", &EditorBase::RenameResidue)
+    .def("SetResidueNumber", &EditorBase::SetResidueNumber)
     .def("RenameAtom", &EditorBase::RenameAtom)
     .def("AddTorsion", &EditorBase::AddTorsion)
     .def("ReorderResidues",&EditorBase::ReorderResidues)
diff --git a/modules/mol/base/src/editor_base.cc b/modules/mol/base/src/editor_base.cc
index 588c7cf99f92e8b372274721f6e2cef0fd4e0822..6757c2af674587f478e8c7e4d5fb63607b581b1e 100644
--- a/modules/mol/base/src/editor_base.cc
+++ b/modules/mol/base/src/editor_base.cc
@@ -76,6 +76,12 @@ void EditorBase::RenameResidue(ResidueHandle res, const String& new_name)
   res.Impl()->SetKey(new_name);
 }
 
+void EditorBase::SetResidueNumber(ResidueHandle res, const ResNum& new_num)
+{
+  CheckHandleValidity(res);
+  res.Impl()->SetNumber(new_num);
+}
+  
 void EditorBase::RenameChain(ChainHandle chain, const String& new_name)
 {
   CheckHandleValidity(chain); 
diff --git a/modules/mol/base/src/editor_base.hh b/modules/mol/base/src/editor_base.hh
index cd8c811cadb681c8f6828840b13893823a57420e..0527a0a7b1291a2cac7b77387076c915207d5b83 100644
--- a/modules/mol/base/src/editor_base.hh
+++ b/modules/mol/base/src/editor_base.hh
@@ -153,7 +153,9 @@ public:
                      unsigned char bond_order);
 
   void RenameResidue(ResidueHandle res, const String& new_name);
-
+  
+  void SetResidueNumber(ResidueHandle res, const ResNum& num);
+  
   void RenameChain(ChainHandle chain, const String& new_name);
 
   /// \brief Assign type of chain according to ChainType.