diff --git a/modules/io/src/mol/omf.cc b/modules/io/src/mol/omf.cc
index d96243bcc8427aecb5ff9d1f2c2c9320c88faacb..c4eb34949dfe5f51d4e5739480b4adfcea19cef5 100644
--- a/modules/io/src/mol/omf.cc
+++ b/modules/io/src/mol/omf.cc
@@ -21,6 +21,16 @@ namespace{
     }
   };
 
+  // define hash function, so we can use ResidueDefinition as key in an unordered 
+  // map. The used hash function is overly simple and gives a hash collision 
+  // whenever we have two residues of same name but different atom composition.
+  // That's hopefully rare...
+  struct ResidueDefinitionHash {
+    std::size_t operator()(const ost::io::ResidueDefinition& r) const {
+      return std::hash<String>()(r.name);
+    }
+  };
+
   // some helpers
   void RealToIntVec(const std::vector<Real>& real_vec, 
                     std::vector<int>& int_vec, Real factor) {
diff --git a/modules/io/src/mol/omf.hh b/modules/io/src/mol/omf.hh
index 721e5f8b06be3240c06b6a0de206b322ee7b9ce8..dfb655514a123d42144b43451fd5754fcafdaf08 100644
--- a/modules/io/src/mol/omf.hh
+++ b/modules/io/src/mol/omf.hh
@@ -75,17 +75,6 @@ struct ResidueDefinition {
 };
 
 
-// define hash function, so we can use ResidueDefinition as key in an unordered 
-// map. The used hash function is overly simple and gives a hash collision 
-// whenever we have two residues of same name but different atom composition.
-// That's hopefully rare...
-struct ResidueDefinitionHash {
-  std::size_t operator()(const ResidueDefinition& r) const {
-    return std::hash<String>()(r.name);
-  }
-};
-
-
 struct BioUnitDefinition {
   BioUnitDefinition() { }