diff --git a/modules/mol/base/pymod/export_entity.cc b/modules/mol/base/pymod/export_entity.cc
index c0b54781a2d85a1bcefa2a7695a21c66734c970d..bd2e97248f2ebd6ff6d0e253b1286d7581350637 100644
--- a/modules/mol/base/pymod/export_entity.cc
+++ b/modules/mol/base/pymod/export_entity.cc
@@ -225,7 +225,8 @@ void export_Entity()
     .def("EditXCS", &EntityHandle::EditXCS, arg("mode")=UNBUFFERED_EDIT)
     .def("EditICS", &EntityHandle::EditICS, arg("mode")=UNBUFFERED_EDIT)
     .def("RequestXCSEditor", &depr_request_xcs_editor, arg("mode")=UNBUFFERED_EDIT)
-    .def("RequestICSEditor", &depr_request_ics_editor, arg("mode")=UNBUFFERED_EDIT)  
+    .def("RequestICSEditor", &depr_request_ics_editor, arg("mode")=UNBUFFERED_EDIT)
+    .def("GetHashCode", &EntityHandle::GetHashCode) 
     .def(self==self)
     .def(self!=self)
 #if OST_NUMPY_SUPPORT_ENABLED
diff --git a/modules/mol/base/src/entity_handle.cc b/modules/mol/base/src/entity_handle.cc
index b17d23f0b12edf44e6d3e3581f50bd7c0a171b36..ade0c4524d17f4e0bd2360fb39fdbecbe711f549 100644
--- a/modules/mol/base/src/entity_handle.cc
+++ b/modules/mol/base/src/entity_handle.cc
@@ -388,4 +388,11 @@ EntityHandle EntityHandle::GetHandle() const
 {
   return *this;
 }
+
+unsigned long EntityHandle::GetHashCode() const
+{
+  this->CheckValidity();
+  return reinterpret_cast<unsigned long>(Impl().get());
+}
+
 }} // ns
diff --git a/modules/mol/base/src/entity_handle.hh b/modules/mol/base/src/entity_handle.hh
index 18383529adc27e7472876d44d104d0381d0d8af3..a85db21be815dbe2e4cd32b8075416931efc2ad6 100644
--- a/modules/mol/base/src/entity_handle.hh
+++ b/modules/mol/base/src/entity_handle.hh
@@ -272,6 +272,9 @@ public:
   /// 
   /// Useful for templated code and duck-typing in Python
   EntityHandle GetHandle() const;
+
+  unsigned long GetHashCode() const;
+  
   bool operator==(const EntityHandle& ref) const;
   bool operator!=(const EntityHandle& ref) const;
 };