Index: src/lib/scene/opengl/__init__.py
===================================================================
--- src/lib/scene/opengl/__init__.py	(revision 7543)
+++ src/lib/scene/opengl/__init__.py	(working copy)
@@ -1,5 +1,6 @@
 try:
     import OpenGL.GL
+    import OpenGL.GLU    
 except ImportError:
     import glchess.scene
     
@@ -14,4 +15,10 @@
         def addChessPiece(self, chessSet, name, coord, feedback):
             return Piece()
 else:
+    # PyOpenGL 3.0 renamed GLError -> GLerror, support 2.0
+    if not hasattr(OpenGL.GL, 'GLerror'):
+        OpenGL.GL.GLerror = OpenGL.GLError
+    if not hasattr(OpenGL.GLU, 'GLUerror'):
+        OpenGL.GLU.GLUerror = OpenGL.GLU.GLUError        
+
     from opengl import *
Index: src/lib/scene/opengl/texture.py
===================================================================
--- src/lib/scene/opengl/texture.py	(revision 7543)
+++ src/lib/scene/opengl/texture.py	(working copy)
@@ -110,7 +110,7 @@
         # Generate mipmaps
         try:
             gluBuild2DMipmaps(GL_TEXTURE_2D, GL_LUMINANCE, self.__width, self.__height, self.__format, GL_UNSIGNED_BYTE, self.__data)
-        except GLUError, e:
+        except GLUerror, e:
             glTexImage2D(GL_TEXTURE_2D,
                          0,                # Level
                          3,                # Depth
