diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index ce0408d24c557a3900ce27bf154b8f7c74527879..25b14b9b54ef1d886a110ff3844c2f6960968fe1 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,3 +1,9 @@
+Changes in Release 2.9.3
+--------------------------------------------------------------------------------
+ * Bugfix release to enable OpenStructure in Python 3.13
+ * tags in Docker/Singularity remain deliberately on 2.9.2
+
+
 Changes in Release 2.9.2
 --------------------------------------------------------------------------------
  * Examples for comparing macromolecular complexes
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3f8063e86ff2619853b5d2b5691143e4aa9b3613..10371f7119900f6f65367545113e8b9b846e3243 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,7 +15,7 @@ project(OpenStructure CXX C)
 set (CMAKE_EXPORT_COMPILE_COMMANDS 1)
 set (OST_VERSION_MAJOR 2)
 set (OST_VERSION_MINOR 9)
-set (OST_VERSION_PATCH 2)
+set (OST_VERSION_PATCH 3)
 set (OST_VERSION_STRING ${OST_VERSION_MAJOR}.${OST_VERSION_MINOR}.${OST_VERSION_PATCH} )
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake_support)
 include(OST)
diff --git a/modules/seq/base/pymod/export_sequence.cc b/modules/seq/base/pymod/export_sequence.cc
index 2b23ef15a11fed7b24075db37845cd3174c70dc7..5522b5c8c545544915202af73f07945bd22478b4 100644
--- a/modules/seq/base/pymod/export_sequence.cc
+++ b/modules/seq/base/pymod/export_sequence.cc
@@ -146,9 +146,12 @@ struct RevRegionRangeIter {
     }
     --e_;
     AlignedColumn col=*e_;
-
     return col;
   }
+
+  RevRegionRangeIter& iter() {
+    return *this;
+  }
 private:
   AlignedColumnIterator b_;
   AlignedColumnIterator e_;
@@ -165,10 +168,15 @@ struct RegionRangeIter {
     if (b_==e_) {
       boost::python::objects::stop_iteration_error();
     }
+
     AlignedColumn col=*b_;
     ++b_;
     return col;
   }
+
+  RegionRangeIter& iter() {
+    return *this;
+  }
 private:
   AlignedColumnIterator b_;
   AlignedColumnIterator e_;
@@ -188,6 +196,11 @@ struct ConstSeqListIter {
     ++b_;
     return s;
   }
+
+  ConstSeqListIter& iter()
+  {
+    return *this;
+  }
 private:
   ConstSequenceList           l_;
   ConstSequenceList::iterator b_;
@@ -208,6 +221,11 @@ struct SeqListIter {
     ++b_;
     return s;
   }
+
+  SeqListIter& iter()
+  {
+    return *this;
+  }
 private:
   SequenceList           l_;
   SequenceList::iterator b_;
@@ -329,18 +347,26 @@ void export_sequence()
   class_<RegionRangeIter>("RegionRangeIter", no_init)
     .def("next", &RegionRangeIter::next)
     .def("__next__", &RegionRangeIter::next)
+    .def("iter", &RegionRangeIter::iter, return_value_policy<copy_non_const_reference>())
+    .def("__iter__", &RegionRangeIter::iter, return_value_policy<copy_non_const_reference>())
   ;
-    class_<RevRegionRangeIter>("RevRegionRangeIter", no_init)
+  class_<RevRegionRangeIter>("RevRegionRangeIter", no_init)
     .def("next", &RevRegionRangeIter::next)
     .def("__next__", &RevRegionRangeIter::next)
+    .def("iter", &RevRegionRangeIter::iter, return_value_policy<copy_non_const_reference>())
+    .def("__iter__", &RevRegionRangeIter::iter, return_value_policy<copy_non_const_reference>())
   ;
   class_<ConstSeqListIter>("ConstSeqListIter", no_init)
     .def("next", &ConstSeqListIter::next)
     .def("__next__", &ConstSeqListIter::next)
+    .def("iter", &ConstSeqListIter::iter, return_value_policy<copy_non_const_reference>())
+    .def("__iter__", &ConstSeqListIter::iter, return_value_policy<copy_non_const_reference>())
   ;
   class_<SeqListIter>("SeqListIter", no_init)
     .def("next", &SeqListIter::next)
     .def("__next__", &SeqListIter::next)
+    .def("iter", &SeqListIter::iter, return_value_policy<copy_non_const_reference>())
+    .def("__iter__", &SeqListIter::iter, return_value_policy<copy_non_const_reference>())
   ;
   class_<AlignmentHandle>("AlignmentHandle", init<>())
     .def("GetCount", &AlignmentHandle::GetCount)