diff --git a/COLLADAFramework/include/COLLADAFWEdge.h b/COLLADAFramework/include/COLLADAFWEdge.h
index ce80f684..8fd7c3f0 100644
--- a/COLLADAFramework/include/COLLADAFWEdge.h
+++ b/COLLADAFramework/include/COLLADAFWEdge.h
@@ -119,21 +119,4 @@ namespace COLLADAFW
 
 } // namespace COLLADAFW
 
-
-namespace COLLADABU_HASH_NAMESPACE_OPEN
-{
-    template<>
-    struct COLLADABU_HASH_FUN<COLLADAFW::Edge>
-    {
-        size_t operator() (const COLLADAFW::Edge& edge) const { return edge; }
-
-#if defined(_MSC_VER) && _MSC_VER==1400
-        static const size_t bucket_size=4;
-        static const size_t min_buckets=8;
-
-        bool operator() (const COLLADAFW::Edge& edge1, const COLLADAFW::Edge& edge2) const { return edge1<edge2; }
-#endif
-    };
-} COLLADABU_HASH_NAMESPACE_CLOSE
-
 #endif // __COLLADAFW_EDGE_H__
diff --git a/COLLADAFramework/include/COLLADAFWHashFunctions.h b/COLLADAFramework/include/COLLADAFWHashFunctions.h
index a1bab592..381e430c 100644
--- a/COLLADAFramework/include/COLLADAFWHashFunctions.h
+++ b/COLLADAFramework/include/COLLADAFWHashFunctions.h
@@ -13,6 +13,7 @@
 
 #include "COLLADAFWPrerequisites.h"
 #include "COLLADAFWUniqueId.h"
+#include "COLLADAFWEdge.h"
 #include "COLLADABUhash_map.h"
 
 namespace COLLADABU_HASH_NAMESPACE_OPEN
@@ -27,6 +28,19 @@ namespace COLLADABU_HASH_NAMESPACE_OPEN
         static const size_t min_buckets=8;
 
         bool operator() (const COLLADAFW::UniqueId& uniqueId1, const COLLADAFW::UniqueId& uniqueId2) const { return uniqueId1<uniqueId2; }
+#endif
+    };
+
+    template<>
+    struct COLLADABU_HASH_FUN<COLLADAFW::Edge>
+    {
+        size_t operator() (const COLLADAFW::Edge& edge) const { return edge; }
+
+#if defined(_MSC_VER) && _MSC_VER==1400
+        static const size_t bucket_size=4;
+        static const size_t min_buckets=8;
+
+        bool operator() (const COLLADAFW::Edge& edge1, const COLLADAFW::Edge& edge2) const { return edge1<edge2; }
 #endif
     };
 } COLLADABU_HASH_NAMESPACE_CLOSE
diff --git a/dae2ma/include/DAE2MAGeometryImporter.h b/dae2ma/include/DAE2MAGeometryImporter.h
index ac81bf61..b7929239 100644
--- a/dae2ma/include/DAE2MAGeometryImporter.h
+++ b/dae2ma/include/DAE2MAGeometryImporter.h
@@ -23,6 +23,7 @@
 
 #include "COLLADAFWMesh.h"
 #include "COLLADAFWController.h"
+#include "COLLADAFWHashFunctions.h"
 
 #include "Math/COLLADABUMathVector3.h"
 
