diff --git a/src/libs/glsl/glsllexer.h b/src/libs/glsl/glsllexer.h
index 65584c390559bc5f0669cb44d0006edd5b840d2b..b8e906be1ac8a27d082c9eb9b086107f4877bea7 100644
--- a/src/libs/glsl/glsllexer.h
+++ b/src/libs/glsl/glsllexer.h
@@ -78,7 +78,8 @@ public:
         Variant_VertexShader        = 0x00200000,
         Variant_FragmentShader      = 0x00400000,
         Variant_Reserved            = 0x80000000,
-        Variant_Mask                = 0xFFFF0000
+        Variant_Mask                = 0xFFFF0000,
+        Variant_All                 = 0xFFFF0000
     };
 
     union Value {
diff --git a/src/plugins/glsleditor/glsleditorplugin.cpp b/src/plugins/glsleditor/glsleditorplugin.cpp
index 20c0886e12b7eba5e18cccbc359ff04200ea6336..825b245cb91d18b928afd113eaa83e753044fdc8 100644
--- a/src/plugins/glsleditor/glsleditorplugin.cpp
+++ b/src/plugins/glsleditor/glsleditorplugin.cpp
@@ -114,6 +114,9 @@ bool GLSLEditorPlugin::initialize(const QStringList & /*arguments*/, QString *er
     parseGlslFile(QLatin1String("glsl_120.frag"), &m_glsl_120_frag);
     parseGlslFile(QLatin1String("glsl_120.vert"), &m_glsl_120_vert);
     parseGlslFile(QLatin1String("glsl_120_common.glsl"), &m_glsl_120_common);
+    parseGlslFile(QLatin1String("glsl_es_100.frag"), &m_glsl_es_100_frag);
+    parseGlslFile(QLatin1String("glsl_es_100.vert"), &m_glsl_es_100_vert);
+    parseGlslFile(QLatin1String("glsl_es_100_common.glsl"), &m_glsl_es_100_common);
 
 
 //    m_modelManager = new ModelManager(this);
@@ -251,9 +254,8 @@ QByteArray GLSLEditorPlugin::glslFile(const QString &fileName)
 
 void GLSLEditorPlugin::parseGlslFile(const QString &fileName, InitFile *initFile)
 {
-    const int variant = GLSL::Lexer::Variant_GLSL_Qt | // ### hardcoded
-                        GLSL::Lexer::Variant_VertexShader |
-                        GLSL::Lexer::Variant_FragmentShader;
+    // Parse the builtins for any langugage variant so we can use all keywords.
+    const int variant = GLSL::Lexer::Variant_All;
 
     const QByteArray code = glslFile(fileName);
     initFile->engine = new GLSL::Engine();
@@ -263,17 +265,21 @@ void GLSLEditorPlugin::parseGlslFile(const QString &fileName, InitFile *initFile
 
 const GLSLEditorPlugin::InitFile *GLSLEditorPlugin::fragmentShaderInit() const
 {
-    return &m_glsl_120_frag;
+    // TODO: select the correct language variant
+    //return &m_glsl_120_frag;
+    return &m_glsl_es_100_frag;
 }
 
 const GLSLEditorPlugin::InitFile *GLSLEditorPlugin::vertexShaderInit() const
 {
-    return &m_glsl_120_vert;
+    //return &m_glsl_120_vert;
+    return &m_glsl_es_100_vert;
 }
 
 const GLSLEditorPlugin::InitFile *GLSLEditorPlugin::shaderInit() const
 {
-    return &m_glsl_120_common;
+    //return &m_glsl_120_common;
+    return &m_glsl_es_100_common;
 }
 
 Q_EXPORT_PLUGIN(GLSLEditorPlugin)
diff --git a/src/plugins/glsleditor/glsleditorplugin.h b/src/plugins/glsleditor/glsleditorplugin.h
index fc222ed14323d3e47c29fdeab94c819131a8ec23..6561d64335a1785f4dee35576daa43e61cf880c4 100644
--- a/src/plugins/glsleditor/glsleditorplugin.h
+++ b/src/plugins/glsleditor/glsleditorplugin.h
@@ -115,6 +115,9 @@ private:
     InitFile m_glsl_120_frag;
     InitFile m_glsl_120_vert;
     InitFile m_glsl_120_common;
+    InitFile m_glsl_es_100_frag;
+    InitFile m_glsl_es_100_vert;
+    InitFile m_glsl_es_100_common;
 };
 
 } // namespace Internal