diff --git a/OpenGL.cabal b/OpenGL.cabal
--- a/OpenGL.cabal
+++ b/OpenGL.cabal
@@ -1,5 +1,5 @@
 name: OpenGL
-version: 2.10.0.1
+version: 2.10.0.2
 synopsis: A binding for the OpenGL graphics system
 description:
   A Haskell binding for the OpenGL graphics system (GL, version 4.4) and its
@@ -146,7 +146,7 @@
   hs-source-dirs: src
   ghc-options: -Wall -O2
   build-depends:
-    base >= 3 && < 5, bytestring, text, OpenGLRaw >= 1.4.1.0, GLURaw >= 1.3.0.0
+    base >= 3 && < 5, bytestring, text, OpenGLRaw >= 2.1, GLURaw >= 1.3.0.0
   default-language: Haskell2010
   other-extensions:
     CPP
diff --git a/src/Graphics/Rendering/OpenGL/GL/BeginEnd.hs b/src/Graphics/Rendering/OpenGL/GL/BeginEnd.hs
--- a/src/Graphics/Rendering/OpenGL/GL/BeginEnd.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/BeginEnd.hs
@@ -104,7 +104,7 @@
 --------------------------------------------------------------------------------
 
 primitiveRestart :: IO ()
-primitiveRestart = glPrimitiveRestart
+primitiveRestart = glPrimitiveRestartNV
 
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/GL/Capability.hs b/src/Graphics/Rendering/OpenGL/GL/Capability.hs
--- a/src/Graphics/Rendering/OpenGL/GL/Capability.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/Capability.hs
@@ -206,14 +206,14 @@
    CapEdgeFlagArray -> Just gl_EDGE_FLAG_ARRAY
    CapFogCoordArray -> Just gl_FOG_COORD_ARRAY
    CapSecondaryColorArray -> Just gl_SECONDARY_COLOR_ARRAY
-   CapMatrixIndexArray -> Just gl_MATRIX_INDEX_ARRAY
+   CapMatrixIndexArray -> Just gl_MATRIX_INDEX_ARRAY_ARB
    CapConvolution1D -> Just gl_CONVOLUTION_1D
    CapConvolution2D -> Just gl_CONVOLUTION_2D
    CapSeparable2D -> Just gl_SEPARABLE_2D
    CapHistogram -> Just gl_HISTOGRAM
    CapMinmax -> Just gl_MINMAX
    CapRescaleNormal -> Just gl_RESCALE_NORMAL
-   CapSharedTexturePalette -> Just gl_SHARED_TEXTURE_PALETTE
+   CapSharedTexturePalette -> Just gl_SHARED_TEXTURE_PALETTE_EXT
    CapMultisample -> Just gl_MULTISAMPLE
    CapSampleAlphaToCoverage -> Just gl_SAMPLE_ALPHA_TO_COVERAGE
    CapSampleAlphaToOne -> Just gl_SAMPLE_ALPHA_TO_ONE
@@ -222,20 +222,18 @@
    CapPostConvolutionColorTable -> Just gl_POST_CONVOLUTION_COLOR_TABLE
    CapPostColorMatrixColorTable -> Just gl_POST_COLOR_MATRIX_COLOR_TABLE
    CapColorSum -> Just gl_COLOR_SUM
-   CapWeightSumUnity -> Just gl_WEIGHT_SUM_UNITY
-   CapVertexBlend -> Just gl_VERTEX_BLEND
-   CapWeightArray -> Just gl_WEIGHT_ARRAY
-   CapMatrixPalette -> Just gl_MATRIX_PALETTE
+   CapWeightSumUnity -> Just gl_WEIGHT_SUM_UNITY_ARB
+   CapVertexBlend -> Just gl_VERTEX_BLEND_ARB
+   CapWeightArray -> Just gl_WEIGHT_ARRAY_ARB
+   CapMatrixPalette -> Just gl_MATRIX_PALETTE_ARB
    CapDepthClamp -> Just gl_DEPTH_CLAMP
-   CapDepthBoundsTest -> Just gl_DEPTH_BOUNDS_TEST
+   CapDepthBoundsTest -> Just gl_DEPTH_BOUNDS_TEST_EXT
    CapPrimitiveRestart -> Just gl_PRIMITIVE_RESTART
    CapPointSprite -> Just gl_POINT_SPRITE
-   CapStencilTestTwoSide -> Just gl_STENCIL_TEST_TWO_SIDE
-   -- TODO: use RASTER_POSITION_UNCLIPPED_IBM from IBM_rasterpos_clip extension
-   CapRasterPositionUnclipped -> Just 0x19262
+   CapStencilTestTwoSide -> Just gl_STENCIL_TEST_TWO_SIDE_EXT
+   CapRasterPositionUnclipped -> Just gl_RASTER_POSITION_UNCLIPPED_IBM
    CapRasterizerDiscard -> Just gl_RASTERIZER_DISCARD
-   -- TODO: use TEXTURE_COLOR_TABLE_SGI from SGI_texture_color_table extension
-   CapTextureColorTable -> Just 0x80bc
+   CapTextureColorTable -> Just gl_TEXTURE_COLOR_TABLE_SGI
    CapVertexProgramPointSize -> Just gl_VERTEX_PROGRAM_POINT_SIZE
    CapVertexProgramTwoSide -> Just gl_VERTEX_PROGRAM_TWO_SIDE
 
diff --git a/src/Graphics/Rendering/OpenGL/GL/CoordTrans.hs b/src/Graphics/Rendering/OpenGL/GL/CoordTrans.hs
--- a/src/Graphics/Rendering/OpenGL/GL/CoordTrans.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/CoordTrans.hs
@@ -126,14 +126,14 @@
    Projection -> Just gl_PROJECTION
    Texture -> Just gl_TEXTURE
    Color -> Just gl_COLOR
-   MatrixPalette -> Just gl_MATRIX_PALETTE
+   MatrixPalette -> Just gl_MATRIX_PALETTE_ARB
 
 unmarshalMatrixMode :: GLenum -> MatrixMode
 unmarshalMatrixMode x
    | x == gl_PROJECTION = Projection
    | x == gl_TEXTURE = Texture
    | x == gl_COLOR = Color
-   | x == gl_MATRIX_PALETTE = MatrixPalette
+   | x == gl_MATRIX_PALETTE_ARB = MatrixPalette
    | otherwise =
         case modelviewEnumToIndex x of
            Just i -> Modelview i
diff --git a/src/Graphics/Rendering/OpenGL/GL/DataType.hs b/src/Graphics/Rendering/OpenGL/GL/DataType.hs
--- a/src/Graphics/Rendering/OpenGL/GL/DataType.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/DataType.hs
@@ -84,10 +84,8 @@
    UnsignedInt5999Rev -> gl_UNSIGNED_INT_5_9_9_9_REV
    Float32UnsignedInt248Rev -> gl_FLOAT_32_UNSIGNED_INT_24_8_REV
    Bitmap -> gl_BITMAP
-   -- TODO: Use UNSIGNED_SHORT_8_8_APPLE from APPLE_ycbcr_422 extension
-   UnsignedShort88 -> 0x85ba
-   -- TODO: Use UNSIGNED_SHORT_8_8_REV_APPLE from APPLE_ycbcr_422 extension
-   UnsignedShort88Rev -> 0x85bb
+   UnsignedShort88 -> gl_UNSIGNED_SHORT_8_8_APPLE
+   UnsignedShort88Rev -> gl_UNSIGNED_SHORT_8_8_REV_APPLE
    Double -> gl_DOUBLE
    TwoBytes -> gl_2_BYTES
    ThreeBytes -> gl_3_BYTES
@@ -120,10 +118,8 @@
    | x == gl_UNSIGNED_INT_5_9_9_9_REV = UnsignedInt5999Rev
    | x == gl_FLOAT_32_UNSIGNED_INT_24_8_REV = Float32UnsignedInt248Rev
    | x == gl_BITMAP = Bitmap
-   -- TODO: Use UNSIGNED_SHORT_8_8_APPLE from APPLE_ycbcr_422 extension
-   | x == 0x85ba = UnsignedShort88
-   -- TODO: Use UNSIGNED_SHORT_8_8_REV_APPLE from APPLE_ycbcr_422 extension
-   | x == 0x85bb = UnsignedShort88Rev
+   | x == gl_UNSIGNED_SHORT_8_8_APPLE = UnsignedShort88
+   | x == gl_UNSIGNED_SHORT_8_8_REV_APPLE = UnsignedShort88Rev
    | x == gl_DOUBLE = Double
    | x == gl_2_BYTES = TwoBytes
    | x == gl_3_BYTES = ThreeBytes
diff --git a/src/Graphics/Rendering/OpenGL/GL/Fog.hs b/src/Graphics/Rendering/OpenGL/GL/Fog.hs
--- a/src/Graphics/Rendering/OpenGL/GL/Fog.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/Fog.hs
@@ -54,8 +54,7 @@
    FogMode -> gl_FOG_MODE
    FogColor -> gl_FOG_COLOR
    FogCoordSrc -> gl_FOG_COORD_SRC
-   -- TODO: Use FOG_DISTANCE_MODE_NV from NV_fog_distance extension
-   FogDistanceMode -> 0x855a
+   FogDistanceMode -> gl_FOG_DISTANCE_MODE_NV
 
 --------------------------------------------------------------------------------
 
@@ -178,19 +177,15 @@
 
 marshalFogDistanceMode :: FogDistanceMode -> GLint
 marshalFogDistanceMode x = fromIntegral $ case x of
-   -- TODO: Use EYE_RADIAL_NV from NV_fog_distance extension
-   EyeRadial -> 0x855b
+   EyeRadial -> gl_EYE_RADIAL_NV
    EyePlaneSigned ->gl_EYE_PLANE
-   -- TODO: Use EYE_PLANE_ABSOLUTE_NV from NV_fog_distance extension
-   EyePlaneAbsolute -> 0x855c
+   EyePlaneAbsolute -> gl_EYE_PLANE_ABSOLUTE_NV
 
 unmarshalFogDistanceMode :: GLint -> FogDistanceMode
 unmarshalFogDistanceMode x
-   -- TODO: Use EYE_RADIAL_NV from NV_fog_distance extension
-   | y == 0x855b = EyeRadial
+   | y == gl_EYE_RADIAL_NV = EyeRadial
    | y == gl_EYE_PLANE = EyePlaneSigned
-   -- TODO: Use EYE_PLANE_ABSOLUTE_NV from NV_fog_distance extension
-   | y == 0x855c = EyePlaneAbsolute
+   | y == gl_EYE_PLANE_ABSOLUTE_NV = EyePlaneAbsolute
    | otherwise = error ("unmarshalFogDistanceMode: illegal value " ++ show x)
    where y = fromIntegral x
 
diff --git a/src/Graphics/Rendering/OpenGL/GL/Hints.hs b/src/Graphics/Rendering/OpenGL/GL/Hints.hs
--- a/src/Graphics/Rendering/OpenGL/GL/Hints.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/Hints.hs
@@ -43,8 +43,8 @@
    Fog -> gl_FOG_HINT
    GenerateMipmap -> gl_GENERATE_MIPMAP_HINT
    TextureCompression -> gl_TEXTURE_COMPRESSION_HINT
-   PackCMYK -> gl_PACK_CMYK_HINT
-   UnpackCMYK -> gl_UNPACK_CMYK_HINT
+   PackCMYK -> gl_PACK_CMYK_HINT_EXT
+   UnpackCMYK -> gl_UNPACK_CMYK_HINT_EXT
 
 hintTargetToGetPName :: HintTarget -> PName1I
 hintTargetToGetPName x = case x of
diff --git a/src/Graphics/Rendering/OpenGL/GL/PerFragment.hs b/src/Graphics/Rendering/OpenGL/GL/PerFragment.hs
--- a/src/Graphics/Rendering/OpenGL/GL/PerFragment.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/PerFragment.hs
@@ -104,7 +104,7 @@
    makeStateVarMaybe
       (return CapDepthBoundsTest)
       (getClampd2 (,) GetDepthBounds)
-      (uncurry glDepthBounds)
+      (uncurry glDepthBoundsEXT)
 
 --------------------------------------------------------------------------------
 
@@ -200,7 +200,7 @@
    makeStateVarMaybe
       (return CapStencilTestTwoSide)
       (getEnum1 unmarshalFace GetActiveStencilFace)
-      (glActiveStencilFace . marshalFace)
+      (glActiveStencilFaceEXT . marshalFace)
 
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/GL/PixelFormat.hs b/src/Graphics/Rendering/OpenGL/GL/PixelFormat.hs
--- a/src/Graphics/Rendering/OpenGL/GL/PixelFormat.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/PixelFormat.hs
@@ -79,17 +79,16 @@
    RGBAInteger -> gl_RGBA_INTEGER
    BGRInteger -> gl_BGR_INTEGER
    BGRAInteger -> gl_BGRA_INTEGER
-   ABGR -> gl_ABGR
+   ABGR -> gl_ABGR_EXT
    BGR -> gl_BGR
    BGRA -> gl_BGRA
-   CMYK -> gl_CMYK
-   CMYKA -> gl_CMYKA
-   FourTwoTwo -> gl_422
-   FourTwoTwoRev -> gl_422_REV
-   FourTwoTwoAverage -> gl_422_AVERAGE
-   FourTwoTwoRevAverage -> gl_422_REV_AVERAGE
-   -- TODO: Use YCBCR_422_APPLE from APPLE_ycbcr_422 extension
-   YCBCR422 -> 0x85B9
+   CMYK -> gl_CMYK_EXT
+   CMYKA -> gl_CMYKA_EXT
+   FourTwoTwo -> gl_422_EXT
+   FourTwoTwoRev -> gl_422_REV_EXT
+   FourTwoTwoAverage -> gl_422_AVERAGE_EXT
+   FourTwoTwoRevAverage -> gl_422_REV_AVERAGE_EXT
+   YCBCR422 -> gl_YCBCR_422_APPLE
    DepthStencil -> gl_DEPTH_STENCIL
 
 unmarshalPixelFormat :: GLenum -> PixelFormat
@@ -115,16 +114,15 @@
    | x == gl_RGBA_INTEGER = RGBAInteger
    | x == gl_BGR_INTEGER = BGRInteger
    | x == gl_BGRA_INTEGER = BGRAInteger
-   | x == gl_ABGR = ABGR
+   | x == gl_ABGR_EXT = ABGR
    | x == gl_BGR = BGR
    | x == gl_BGRA = BGRA
-   | x == gl_CMYK = CMYK
-   | x == gl_CMYKA = CMYKA
-   | x == gl_422 = FourTwoTwo
-   | x == gl_422_REV = FourTwoTwoRev
-   | x == gl_422_AVERAGE = FourTwoTwoAverage
-   | x == gl_422_REV_AVERAGE = FourTwoTwoRevAverage
-   -- TODO: Use YCBCR_422_APPLE from APPLE_ycbcr_422 extension
-   | x == 0x85B9 = YCBCR422
+   | x == gl_CMYK_EXT = CMYK
+   | x == gl_CMYKA_EXT = CMYKA
+   | x == gl_422_EXT = FourTwoTwo
+   | x == gl_422_REV_EXT = FourTwoTwoRev
+   | x == gl_422_AVERAGE_EXT = FourTwoTwoAverage
+   | x == gl_422_REV_AVERAGE_EXT = FourTwoTwoRevAverage
+   | x == gl_YCBCR_422_APPLE = YCBCR422
    | x == gl_DEPTH_STENCIL = DepthStencil
    | otherwise = error ("unmarshalPixelFormat: illegal value " ++ show x)
diff --git a/src/Graphics/Rendering/OpenGL/GL/PixelRectangles/ColorTable.hs b/src/Graphics/Rendering/OpenGL/GL/PixelRectangles/ColorTable.hs
--- a/src/Graphics/Rendering/OpenGL/GL/PixelRectangles/ColorTable.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/PixelRectangles/ColorTable.hs
@@ -86,9 +86,8 @@
    Texture2DColorTable -> gl_TEXTURE_2D
    Texture3DColorTable -> gl_TEXTURE_3D
    TextureCubeMapColorTable -> gl_TEXTURE_CUBE_MAP
-   -- TODO: Use TEXTURE_COLOR_TABLE_SGI from SGI_texture_color_table extension
-   TextureColorTable -> 0x80bc
-   SharedTexturePalette -> gl_SHARED_TEXTURE_PALETTE
+   TextureColorTable -> gl_TEXTURE_COLOR_TABLE_SGI
+   SharedTexturePalette -> gl_SHARED_TEXTURE_PALETTE_EXT
 
 --------------------------------------------------------------------------------
 
@@ -109,8 +108,7 @@
    Texture2DColorTable -> Just gl_PROXY_TEXTURE_2D
    Texture3DColorTable -> Just gl_PROXY_TEXTURE_3D
    TextureCubeMapColorTable -> Just gl_PROXY_TEXTURE_CUBE_MAP
-   -- TODO: Use PROXY_TEXTURE_COLOR_TABLE_SGI from SGI_texture_color_table extension
-   TextureColorTable -> Just 0x80bd
+   TextureColorTable -> Just gl_TEXTURE_COLOR_TABLE_SGI
    SharedTexturePalette -> Nothing
 
 --------------------------------------------------------------------------------
diff --git a/src/Graphics/Rendering/OpenGL/GL/QueryUtils.hs b/src/Graphics/Rendering/OpenGL/GL/QueryUtils.hs
--- a/src/Graphics/Rendering/OpenGL/GL/QueryUtils.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/QueryUtils.hs
@@ -46,16 +46,16 @@
 
 modelviewIndexToEnum :: GLsizei -> Maybe GLenum
 modelviewIndexToEnum 0 = Just gl_MODELVIEW
-modelviewIndexToEnum 1 = Just gl_MODELVIEW1
+modelviewIndexToEnum 1 = Just gl_MODELVIEW1_ARB
 modelviewIndexToEnum i
-   | 2 <= i && i <= 31 = Just (gl_MODELVIEW2 - 2 + fromIntegral i)
+   | 2 <= i && i <= 31 = Just (gl_MODELVIEW2_ARB - 2 + fromIntegral i)
    | otherwise = Nothing
 
 modelviewEnumToIndex :: GLenum -> Maybe GLsizei
 modelviewEnumToIndex x
    | x == gl_MODELVIEW = Just 0
-   | x == gl_MODELVIEW1 = Just 1
-   | gl_MODELVIEW2 <= x && x <= gl_MODELVIEW31 = Just (fromIntegral (x - (gl_MODELVIEW2 - 2)))
+   | x == gl_MODELVIEW1_ARB = Just 1
+   | gl_MODELVIEW2_ARB <= x && x <= gl_MODELVIEW31_ARB = Just (fromIntegral (x - (gl_MODELVIEW2_ARB - 2)))
    | otherwise = Nothing
 
 --------------------------------------------------------------------------------
diff --git a/src/Graphics/Rendering/OpenGL/GL/QueryUtils/PName.hs b/src/Graphics/Rendering/OpenGL/GL/QueryUtils/PName.hs
--- a/src/Graphics/Rendering/OpenGL/GL/QueryUtils/PName.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/QueryUtils/PName.hs
@@ -579,8 +579,8 @@
         GetFogHint -> Just gl_FOG_HINT
         GetGenerateMipmapHint -> Just gl_GENERATE_MIPMAP_HINT
         GetTextureCompressionHint -> Just gl_TEXTURE_COMPRESSION_HINT
-        GetPackCMYKHint -> Just gl_PACK_CMYK_HINT
-        GetUnpackCMYKHint -> Just gl_UNPACK_CMYK_HINT
+        GetPackCMYKHint -> Just gl_PACK_CMYK_HINT_EXT
+        GetUnpackCMYKHint -> Just gl_UNPACK_CMYK_HINT_EXT
         GetVertexArrayBinding -> Just gl_VERTEX_ARRAY_BINDING
         -- Selection ?
         GetMaxNameStackDepth -> Just gl_MAX_NAME_STACK_DEPTH
@@ -635,8 +635,8 @@
         GetMaxProjectionStackDepth -> Just gl_MAX_PROJECTION_STACK_DEPTH
         GetMaxTextureStackDepth -> Just gl_MAX_TEXTURE_STACK_DEPTH
         GetMaxColorMatrixStackDepth -> Just gl_MAX_COLOR_MATRIX_STACK_DEPTH
-        GetMaxMatrixPaletteStackDepth -> Just gl_MAX_MATRIX_PALETTE_STACK_DEPTH
-        GetCurrentMatrixStackDepth -> Just gl_CURRENT_MATRIX_STACK_DEPTH
+        GetMaxMatrixPaletteStackDepth -> Just gl_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB
+        GetCurrentMatrixStackDepth -> Just gl_CURRENT_MATRIX_STACK_DEPTH_ARB
         GetActiveTexture -> Just gl_ACTIVE_TEXTURE
         -- vertexarrays
         GetVertexArraySize -> Just gl_VERTEX_ARRAY_SIZE
@@ -658,8 +658,8 @@
         GetSecondaryColorArraySize -> Just gl_SECONDARY_COLOR_ARRAY_SIZE
         GetSecondaryColorArrayType -> Just gl_SECONDARY_COLOR_ARRAY_TYPE
         GetSecondaryColorArrayStride -> Just gl_SECONDARY_COLOR_ARRAY_STRIDE
-        GetArrayElementLockCount -> Just gl_ARRAY_ELEMENT_LOCK_COUNT
-        GetArrayElementLockFirst -> Just gl_ARRAY_ELEMENT_LOCK_FIRST
+        GetArrayElementLockCount -> Just gl_ARRAY_ELEMENT_LOCK_COUNT_EXT
+        GetArrayElementLockFirst -> Just gl_ARRAY_ELEMENT_LOCK_FIRST_EXT
         GetClientActiveTexture -> Just gl_CLIENT_ACTIVE_TEXTURE
         GetMaxElementsVertices -> Just gl_MAX_ELEMENTS_VERTICES
         GetMaxElementsIndices -> Just gl_MAX_ELEMENTS_INDICES
@@ -710,7 +710,7 @@
         GetFogMode -> Just gl_FOG_MODE
         GetFogIndex -> Just gl_FOG_INDEX
         GetFogCoordSrc -> Just gl_FOG_COORD_SRC
-        GetFogDistanceMode -> Just gl_FOG_DISTANCE_MODE
+        GetFogDistanceMode -> Just gl_FOG_DISTANCE_MODE_NV
         -- Framebuffer
         GetAuxBuffers -> Just gl_AUX_BUFFERS
         GetDoublebuffer -> Just gl_DOUBLEBUFFER
@@ -753,7 +753,7 @@
         GetStencilFail -> Just gl_STENCIL_FAIL
         GetStencilPassDepthFail -> Just gl_STENCIL_PASS_DEPTH_FAIL
         GetStencilPassDepthPass -> Just gl_STENCIL_PASS_DEPTH_PASS
-        GetActiveStencilFace -> Just gl_ACTIVE_STENCIL_FACE
+        GetActiveStencilFace -> Just gl_ACTIVE_STENCIL_FACE_EXT
         GetLogicOpMode -> Just gl_LOGIC_OP_MODE
         GetBlendDst -> Just gl_BLEND_DST
         GetBlendSrc -> Just gl_BLEND_SRC
@@ -895,8 +895,8 @@
         GetZoomX -> Just gl_ZOOM_X
         GetZoomY -> Just gl_ZOOM_Y
         -- Colors
-        GetMaxShininess -> Just gl_MAX_SHININESS
-        GetMaxSpotExponent -> Just gl_MAX_SPOT_EXPONENT
+        GetMaxShininess -> Just gl_MAX_SHININESS_NV
+        GetMaxSpotExponent -> Just gl_MAX_SPOT_EXPONENT_NV
         -- Fog
         GetFogStart -> Just gl_FOG_START
         GetFogEnd -> Just gl_FOG_END
@@ -949,7 +949,7 @@
         GetPolygonOffsetFactor -> Just gl_POLYGON_OFFSET_FACTOR
         GetPolygonOffsetUnits -> Just gl_POLYGON_OFFSET_UNITS
         -- Texture parameters
-        GetMaxTextureMaxAnisotropy -> Just gl_MAX_TEXTURE_MAX_ANISOTROPY
+        GetMaxTextureMaxAnisotropy -> Just gl_MAX_TEXTURE_MAX_ANISOTROPY_EXT
         GetMaxTextureLODBias -> Just gl_MAX_TEXTURE_LOD_BIAS
 
 -----------------------------------------------------------------------------
@@ -1037,7 +1037,7 @@
         GetAliasedLineWidthRange -> Just gl_ALIASED_LINE_WIDTH_RANGE
         GetSmoothLineWidthRange -> Just gl_SMOOTH_LINE_WIDTH_RANGE
         -- PerFragment
-        GetDepthBounds -> Just gl_DEPTH_BOUNDS
+        GetDepthBounds -> Just gl_DEPTH_BOUNDS_EXT
 
 -----------------------------------------------------------------------------
 
@@ -1072,7 +1072,7 @@
         -- coordtrans
         GetViewport -> Just gl_VIEWPORT
         -- Framebuffer
-        GetRGBASignedComponents -> Just gl_RGBA_SIGNED_COMPONENTS
+        GetRGBASignedComponents -> Just gl_RGBA_SIGNED_COMPONENTS_EXT
         -- PerFragement
         GetScissorBox -> Just gl_SCISSOR_BOX
 
@@ -1180,4 +1180,4 @@
         GetProjectionMatrix -> Just gl_PROJECTION_MATRIX
         GetTextureMatrix -> Just gl_TEXTURE_MATRIX
         GetColorMatrix -> Just gl_COLOR_MATRIX
-        GetMatrixPalette -> Just gl_MATRIX_PALETTE
+        GetMatrixPalette -> Just gl_MATRIX_PALETTE_ARB
diff --git a/src/Graphics/Rendering/OpenGL/GL/Shaders/Program.hs b/src/Graphics/Rendering/OpenGL/GL/Shaders/Program.hs
--- a/src/Graphics/Rendering/OpenGL/GL/Shaders/Program.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/Shaders/Program.hs
@@ -94,7 +94,7 @@
    TessGenSpacing -> gl_TESS_GEN_SPACING
    TessGenVertexOrder -> gl_TESS_GEN_VERTEX_ORDER
    TessGenPointMode -> gl_TESS_GEN_POINT_MODE
-   ComputeWorkGroupSize ->  0x8267 -- gl_COMPUTE_WORK_GROUP_SIZE a.k.a. gl_COMPUTE_LOCAL_WORK_SIZE
+   ComputeWorkGroupSize ->  gl_COMPUTE_WORK_GROUP_SIZE
    ProgramSeparable -> gl_PROGRAM_SEPARABLE
    ProgramBinaryRetrievableHint -> gl_PROGRAM_BINARY_RETRIEVABLE_HINT
    ActiveAtomicCounterBuffers -> gl_ACTIVE_ATOMIC_COUNTER_BUFFERS
diff --git a/src/Graphics/Rendering/OpenGL/GL/Texturing/Environments.hs b/src/Graphics/Rendering/OpenGL/GL/Texturing/Environments.hs
--- a/src/Graphics/Rendering/OpenGL/GL/Texturing/Environments.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/Texturing/Environments.hs
@@ -83,19 +83,19 @@
    TexEnvParamSrc0RGB -> gl_SRC0_RGB
    TexEnvParamSrc1RGB -> gl_SRC1_RGB
    TexEnvParamSrc2RGB -> gl_SRC2_RGB
-   TexEnvParamSrc3RGB -> gl_SOURCE3_RGB
+   TexEnvParamSrc3RGB -> gl_SOURCE3_RGB_NV
    TexEnvParamSrc0Alpha -> gl_SRC0_ALPHA
    TexEnvParamSrc1Alpha -> gl_SRC1_ALPHA
    TexEnvParamSrc2Alpha -> gl_SRC2_ALPHA
-   TexEnvParamSrc3Alpha -> gl_SOURCE3_ALPHA
+   TexEnvParamSrc3Alpha -> gl_SOURCE3_ALPHA_NV
    TexEnvParamOperand0RGB -> gl_OPERAND0_RGB
    TexEnvParamOperand1RGB -> gl_OPERAND1_RGB
    TexEnvParamOperand2RGB -> gl_OPERAND2_RGB
-   TexEnvParamOperand3RGB -> gl_OPERAND3_RGB
+   TexEnvParamOperand3RGB -> gl_OPERAND3_RGB_NV
    TexEnvParamOperand0Alpha -> gl_OPERAND0_ALPHA
    TexEnvParamOperand1Alpha -> gl_OPERAND1_ALPHA
    TexEnvParamOperand2Alpha -> gl_OPERAND2_ALPHA
-   TexEnvParamOperand3Alpha -> gl_OPERAND3_ALPHA
+   TexEnvParamOperand3Alpha -> gl_OPERAND3_ALPHA_NV
    TexEnvParamRGBScale -> gl_RGB_SCALE
    TexEnvParamAlphaScale -> gl_ALPHA_SCALE
    TexEnvParamLODBias -> gl_TEXTURE_LOD_BIAS
@@ -172,7 +172,7 @@
    Replace -> gl_REPLACE
    AddUnsigned -> gl_ADD
    Combine -> gl_COMBINE
-   Combine4 -> gl_COMBINE4
+   Combine4 -> gl_COMBINE4_NV
 
 unmarshalTextureFunction :: GLint -> TextureFunction
 unmarshalTextureFunction x
@@ -182,7 +182,7 @@
    | y == gl_REPLACE = Replace
    | y == gl_ADD = AddUnsigned
    | y == gl_COMBINE = Combine
-   | y == gl_COMBINE4 = Combine4
+   | y == gl_COMBINE4_NV = Combine4
    | otherwise = error ("unmarshalTextureFunction: illegal value " ++ show x)
    where y = fromIntegral x
 
diff --git a/src/Graphics/Rendering/OpenGL/GL/Texturing/Parameters.hs b/src/Graphics/Rendering/OpenGL/GL/Texturing/Parameters.hs
--- a/src/Graphics/Rendering/OpenGL/GL/Texturing/Parameters.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/Texturing/Parameters.hs
@@ -65,10 +65,10 @@
    (Repeated, Repeat) -> gl_REPEAT
    (Repeated, ClampToEdge) -> gl_CLAMP_TO_EDGE
    (Repeated, ClampToBorder) -> gl_CLAMP_TO_BORDER
-   (Mirrored, Clamp) -> gl_MIRROR_CLAMP
+   (Mirrored, Clamp) -> gl_MIRROR_CLAMP_EXT
    (Mirrored, Repeat) -> gl_MIRRORED_REPEAT
    (Mirrored, ClampToEdge) -> gl_MIRROR_CLAMP_TO_EDGE
-   (Mirrored, ClampToBorder) -> gl_MIRROR_CLAMP_TO_BORDER
+   (Mirrored, ClampToBorder) -> gl_MIRROR_CLAMP_TO_BORDER_EXT
 
 unmarshalTextureWrapMode :: GLint -> (Repetition, Clamping)
 unmarshalTextureWrapMode x
@@ -76,10 +76,10 @@
    | y == gl_REPEAT = (Repeated, Repeat)
    | y == gl_CLAMP_TO_EDGE = (Repeated, ClampToEdge)
    | y == gl_CLAMP_TO_BORDER = (Repeated, ClampToBorder)
-   | y == gl_MIRROR_CLAMP = (Mirrored, Clamp)
+   | y == gl_MIRROR_CLAMP_EXT = (Mirrored, Clamp)
    | y == gl_MIRRORED_REPEAT = (Mirrored, Repeat)
    | y == gl_MIRROR_CLAMP_TO_EDGE = (Mirrored, ClampToEdge)
-   | y == gl_MIRROR_CLAMP_TO_BORDER = (Mirrored, ClampToBorder)
+   | y == gl_MIRROR_CLAMP_TO_BORDER_EXT = (Mirrored, ClampToBorder)
    | otherwise = error ("unmarshalTextureWrapMode: illegal value " ++ show x)
    where y = fromIntegral x
 
@@ -191,15 +191,15 @@
    | GequalR
    deriving ( Eq, Ord, Show )
 
-marshalTextureCompareOperator :: TextureCompareOperator -> GLint
+marshalTextureCompareOperator :: TextureCompareOperator -> GLenum
 marshalTextureCompareOperator x = case x of
-   LequalR -> 0x819c
-   GequalR -> 0x819d
+   LequalR -> gl_TEXTURE_LEQUAL_R_SGIX
+   GequalR -> gl_TEXTURE_GEQUAL_R_SGIX
 
-unmarshalTextureCompareOperator :: GLint -> TextureCompareOperator
+unmarshalTextureCompareOperator :: GLenum -> TextureCompareOperator
 unmarshalTextureCompareOperator x
-   | x == 0x819c = LequalR
-   | x == 0x819d = GequalR
+   | x == gl_TEXTURE_LEQUAL_R_SGIX = LequalR
+   | x == gl_TEXTURE_GEQUAL_R_SGIX = GequalR
    | otherwise = error ("unmarshalTextureCompareOperator: illegal value " ++ show x)
 
 --------------------------------------------------------------------------------
@@ -208,7 +208,7 @@
 textureCompareOperator =
    combineTexParamsMaybe
       (texParami (unmarshalCapability . fromIntegral) (fromIntegral. marshalCapability) TextureCompare)
-      (texParami unmarshalTextureCompareOperator marshalTextureCompareOperator TextureCompareOperator)
+      (texParami (unmarshalTextureCompareOperator . fromIntegral) (fromIntegral . marshalTextureCompareOperator) TextureCompareOperator)
 
 --------------------------------------------------------------------------------
 
diff --git a/src/Graphics/Rendering/OpenGL/GL/Texturing/Queries.hs b/src/Graphics/Rendering/OpenGL/GL/Texturing/Queries.hs
--- a/src/Graphics/Rendering/OpenGL/GL/Texturing/Queries.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/Texturing/Queries.hs
@@ -64,7 +64,7 @@
    TextureAlphaSize -> gl_TEXTURE_ALPHA_SIZE
    TextureIntensitySize -> gl_TEXTURE_INTENSITY_SIZE
    TextureLuminanceSize -> gl_TEXTURE_LUMINANCE_SIZE
-   TextureIndexSize -> gl_TEXTURE_INDEX_SIZE
+   TextureIndexSize -> gl_TEXTURE_INDEX_SIZE_EXT
    DepthBits -> gl_DEPTH_BITS
    TextureCompressedImageSize -> gl_TEXTURE_COMPRESSED_IMAGE_SIZE
    TextureCompressed -> gl_TEXTURE_COMPRESSED
diff --git a/src/Graphics/Rendering/OpenGL/GL/Texturing/TexParameter.hs b/src/Graphics/Rendering/OpenGL/GL/Texturing/TexParameter.hs
--- a/src/Graphics/Rendering/OpenGL/GL/Texturing/TexParameter.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/Texturing/TexParameter.hs
@@ -65,10 +65,10 @@
    TextureBaseLevel -> gl_TEXTURE_BASE_LEVEL
    TextureMaxLevel -> gl_TEXTURE_MAX_LEVEL
    TexturePriority -> gl_TEXTURE_PRIORITY
-   TextureMaxAnisotropy -> gl_TEXTURE_MAX_ANISOTROPY
-   TextureCompare -> 0x819A
-   TextureCompareOperator -> 0x819B
-   TextureCompareFailValue -> gl_TEXTURE_COMPARE_FAIL_VALUE
+   TextureMaxAnisotropy -> gl_TEXTURE_MAX_ANISOTROPY_EXT
+   TextureCompare -> gl_TEXTURE_COMPARE_SGIX
+   TextureCompareOperator -> gl_TEXTURE_COMPARE_OPERATOR_SGIX
+   TextureCompareFailValue -> gl_TEXTURE_COMPARE_FAIL_VALUE_ARB
    GenerateMipmap -> gl_GENERATE_MIPMAP
    TextureCompareMode -> gl_TEXTURE_COMPARE_MODE
    TextureCompareFunc -> gl_TEXTURE_COMPARE_FUNC
diff --git a/src/Graphics/Rendering/OpenGL/GL/VertexArrays.hs b/src/Graphics/Rendering/OpenGL/GL/VertexArrays.hs
--- a/src/Graphics/Rendering/OpenGL/GL/VertexArrays.hs
+++ b/src/Graphics/Rendering/OpenGL/GL/VertexArrays.hs
@@ -86,7 +86,7 @@
    EdgeFlagArray -> gl_EDGE_FLAG_ARRAY
    FogCoordArray -> gl_FOG_COORD_ARRAY
    SecondaryColorArray -> gl_SECONDARY_COLOR_ARRAY
-   MatrixIndexArray -> gl_MATRIX_INDEX_ARRAY
+   MatrixIndexArray -> gl_MATRIX_INDEX_ARRAY_ARB
 
 -- Hmmm...
 clientArrayTypeToEnableCap :: ClientArrayType -> EnableCap
@@ -372,7 +372,7 @@
       else return Nothing
 
 setLockArrays :: Maybe (ArrayIndex, NumArrayIndices) -> IO ()
-setLockArrays = maybe glUnlockArrays (uncurry glLockArrays)
+setLockArrays = maybe glUnlockArraysEXT (uncurry glLockArraysEXT)
 
 --------------------------------------------------------------------------------
 
@@ -432,8 +432,8 @@
    SecondaryColorArrayPointer -> gl_SECONDARY_COLOR_ARRAY_POINTER
    FeedbackBufferPointer -> gl_FEEDBACK_BUFFER_POINTER
    SelectionBufferPointer -> gl_SELECTION_BUFFER_POINTER
-   WeightArrayPointer -> gl_WEIGHT_ARRAY_POINTER
-   MatrixIndexArrayPointer -> gl_MATRIX_INDEX_ARRAY_POINTER
+   WeightArrayPointer -> gl_WEIGHT_ARRAY_POINTER_ARB
+   MatrixIndexArrayPointer -> gl_MATRIX_INDEX_ARRAY_POINTER_ARB
 
 --------------------------------------------------------------------------------
 
