diff --git a/glslang/MachineIndependent/preprocessor/PpContext.h b/glslang/MachineIndependent/preprocessor/PpContext.h
index 4d267151e9ad7d66d8ffb1290396f32d266e20d3..b19d81410927f6fe6c7b032fa269abf1287fe7af 100644
--- a/glslang/MachineIndependent/preprocessor/PpContext.h
+++ b/glslang/MachineIndependent/preprocessor/PpContext.h
@@ -80,8 +80,6 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #include "../ParseHelper.h"
 
-#include <hash_map>
-
 namespace glslang {
 
 class TPpToken {
@@ -165,8 +163,8 @@ public:
     };
 
     MemoryPool *pool;
-    typedef std::hash_map<int, Symbol*> TSymbol;
-    TSymbol symbols; // this has light use... just defined macros
+    typedef std::map<int, Symbol*> TSymbolMap;
+    TSymbolMap symbols; // this has light use... just defined macros
 
 protected:
     char*   preamble;               // string to parse, all before line 1 of string 0, it is 0 if no preamble
@@ -304,7 +302,7 @@ protected:
     //
     // From PpAtom.cpp
     //
-    typedef std::hash_map<const TString, int> TAtomMap;
+    typedef std::map<const TString, int> TAtomMap;
     typedef TVector<const TString*> TStringMap;
     TAtomMap atomMap;
     TStringMap stringMap;
diff --git a/glslang/MachineIndependent/preprocessor/PpSymbols.cpp b/glslang/MachineIndependent/preprocessor/PpSymbols.cpp
index 076b346dc37c3c143d66f12c353a48b1e17f1e00..590c186e3b1f4f5afe17e899a488dfe432743d6c 100644
--- a/glslang/MachineIndependent/preprocessor/PpSymbols.cpp
+++ b/glslang/MachineIndependent/preprocessor/PpSymbols.cpp
@@ -125,7 +125,7 @@ TPpContext::Symbol* TPpContext::AddSymbol(int atom)
 
 TPpContext::Symbol* TPpContext::LookUpSymbol(int atom)
 {
-    TSymbol::iterator it = symbols.find(atom);
+    TSymbolMap::iterator it = symbols.find(atom);
     if (it == symbols.end())
         return 0;
     else