diff --git a/CMakeLists.txt b/CMakeLists.txt
index a337afebbbaf4214d498697a835ea72d1f720fc4..f387887e47ab1b93e0b38eb988eca548dd6e72d0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,8 +34,6 @@ option(ENABLE_GUI "whether the graphical user interface should be enabled"
        ON)
 option(ENABLE_GFX "whether graphics support should be enabled"
       ON)
-option(USE_MESA "use software rendered Mesa instead of hardware GL"
-      OFF)
 option(ENABLE_IMG "whether the image processing module should be compiled"
        ON)
 option(ENABLE_INFO "whether openstructure should be compiled with support for the info library"
@@ -218,13 +216,7 @@ else()
   endif()
 endif()
 if (ENABLE_GFX)
-  if(USE_MESA)
-    find_package(Mesa REQUIRED)
-    set(_USE_MESA ON)
-  else()
-    find_package(OpenGL REQUIRED)
-    set(_USE_MESA OFF)
-  endif()
+  find_package(OpenGL REQUIRED)
 endif()
 
 if (ENABLE_IMG OR ENABLE_GFX)
@@ -359,7 +351,6 @@ message(STATUS
         "   Info support                     (-DENABLE_INFO) : ${_INFO}\n"
         "   Graphical interface               (-DENABLE_GUI) : ${_UI}\n"
         "   OpenGL support                    (-DENABLE_GFX) : ${_OPENGL}\n"
-        "   OpenGL via Mesa                     (-DUSE_MESA) : ${_USE_MESA}\n"
         "   Image Processing support          (-DENABLE_IMG) : ${_IMG}\n"
         "   Shader support                    (-DUSE_SHADER) : ${_SHADER}\n"
         "   Numpy support                      (-DUSE_NUMPY) : ${_NUMPY}\n"
diff --git a/modules/config/CMakeLists.txt b/modules/config/CMakeLists.txt
index 391a70c9a3ba2a2906e9985924666aa56120ad01..e6588b170dd743186cc19253d0a4e14c78539e0e 100644
--- a/modules/config/CMakeLists.txt
+++ b/modules/config/CMakeLists.txt
@@ -16,12 +16,6 @@ else()
   set(shader_support 0)
 endif()
 
-if (USE_MESA)
-  set(mesa_support 1)
-else()
-  set(mesa_support 0)
-endif()
-
 if (USE_NUMPY)
   set(numpy_support 1)
 else()
diff --git a/modules/config/config.hh.in b/modules/config/config.hh.in
index 5a5b2bb4c25e8c1d6116b2d6d7326274562b73bf..7e8a96579478b0d1010ffe3197618d7cbd076619 100644
--- a/modules/config/config.hh.in
+++ b/modules/config/config.hh.in
@@ -24,7 +24,6 @@
 */
 
 #define OST_SHADER_SUPPORT_ENABLED @shader_support@
-#define OST_MESA_SUPPORT_ENABLED @mesa_support@
 #define OST_PROFILING_ENABLED @profiling_enabled@
 #define OST_ANIMATIONS_ENABLED @animations_enabled@
 #define OST_IMG_ENABLED @img_enabled@
diff --git a/modules/doc/install.rst b/modules/doc/install.rst
index 644cf503e99625c91cd2b6b9f7804e302e112d98..1caff8a664a9fc8bdd8f0ab9c1ce463e586c8b1c 100644
--- a/modules/doc/install.rst
+++ b/modules/doc/install.rst
@@ -247,8 +247,6 @@ Build Options
 
 * Experimental settings (only change if you know what you are doing):
 
-  * `USE_MESA` to use software rendered Mesa instead of hardware GL. By default,
-    this is turned off.
   * `USE_SHADER` controls whether to compile with shader support. By default,
     this is turned off.
   * `ENABLE_SPNAV` controls whether 3DConnexion devices should be supported. By
diff --git a/modules/gfx/src/CMakeLists.txt b/modules/gfx/src/CMakeLists.txt
index fd1c54ebf5a571d08de7d0bb53beb5c8afe1ad3a..acd3f9eb4bf94f4fe29b2e4dccd863a0659f8ecc 100644
--- a/modules/gfx/src/CMakeLists.txt
+++ b/modules/gfx/src/CMakeLists.txt
@@ -187,15 +187,13 @@ if (USE_SHADER)
   list(APPEND OST_GFX_SOURCES impl/scene_fx.cc)
   list(APPEND OST_GFX_IMPL_HEADERS scene_fx.hh)
   if (NOT APPLE)
-    if (NOT USE_MESA)
-      set(OST_GLEW_HEADERS
-         glew.h
-         glxew.h
-         wglew.h IN_DIR GL
-      )
-      list(APPEND OST_GFX_SOURCES GL/glew.c)
-      include_directories("${STAGE_DIR}/include/ost/gfx")
-    endif()
+    set(OST_GLEW_HEADERS
+       glew.h
+       glxew.h
+       wglew.h IN_DIR GL
+    )
+    list(APPEND OST_GFX_SOURCES GL/glew.c)
+    include_directories("${STAGE_DIR}/include/ost/gfx")
   endif()  
 endif()
 
@@ -215,9 +213,6 @@ module(NAME gfx SOURCES ${OST_GFX_SOURCES} ${OST_GFX_MAP_SOURCES}
 include_directories(${PNG_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR})
 
 # link against OpenGL and PNG libraries
-if(USE_MESA)
-  link_directories(${OPENGL_LIBRARY_DIR})
-endif()
 target_link_libraries(ost_gfx ${OPENGL_LIBRARIES} ${PNG_LIBRARIES})
 
 if (USE_SHADER)
diff --git a/modules/gfx/src/glext_include.hh b/modules/gfx/src/glext_include.hh
index 557dcb36045c75542d1fa9df5d24edecfc47a1f5..4bc9decaed531cfd3cb87a8ab91e6612ab70bcd4 100644
--- a/modules/gfx/src/glext_include.hh
+++ b/modules/gfx/src/glext_include.hh
@@ -29,12 +29,6 @@
 #include <ost/config.hh>
 
 #if OST_SHADER_SUPPORT_ENABLED
-#if OST_MESA_SUPPORT_ENABLED
-#  define OST_GL_VERSION_2_0 1
-#  define GL_GLEXT_PROTOTYPES 1
-#  include <GL/gl.h>
-#  include <GL/glext.h>
-#else
 #  if OST_MODULE==OST_GFX
 #    define GLEW_BUILD
 #  endif
@@ -45,7 +39,6 @@
 #    include <ost/gfx/GL/wglew.h>
 #  endif
 #endif
-#endif
 
 #include <ost/gfx/gl_include.hh>
 
diff --git a/modules/gfx/src/shader.cc b/modules/gfx/src/shader.cc
index f514aeebf3e0a401da2bfde639a5ecc6f66fcfaa..03f88696bb5abeccd334cef35608b88fcca1eac5 100644
--- a/modules/gfx/src/shader.cc
+++ b/modules/gfx/src/shader.cc
@@ -59,15 +59,11 @@ Shader::Shader():
 void Shader::PreGLInit() 
 {
 #if !defined(__APPLE__)
-#if OST_MESA_SUPPORT_ENABLED
-  // skip glew initialization
-#else
-  GLenum err = glewInit();
-  if (GLEW_OK != err) {
-    LOG_ERROR("glew failure: " << glewGetErrorString(err));
-    assert(false);
-  }
-#endif
+GLenum err = glewInit();
+if (GLEW_OK != err) {
+  LOG_ERROR("glew failure: " << glewGetErrorString(err));
+  assert(false);
+}
 #endif
 }