diff --git a/GLUT.cabal b/GLUT.cabal
--- a/GLUT.cabal
+++ b/GLUT.cabal
@@ -1,5 +1,5 @@
 name: GLUT
-version: 2.2.2.1
+version: 2.3.0.0
 license: BSD3
 license-file: LICENSE
 maintainer: Jason Dagit <dagitj@gmail.com>, Sven Panne <sven.panne@aedion.de>
@@ -150,10 +150,10 @@
    c-sources:
       cbits/HsGLUT.c
    if flag(split-base)
-      build-depends: base >= 3 && <5, array, containers
+      build-depends: base >= 3 && < 5, array >= 0.3 && < 0.5, containers >= 0.3 && < 0.5
    else
       build-depends: base < 3
-   build-depends: OpenGL >= 2.3, StateVar, Tensor
+   build-depends: OpenGL == 2.5.*, OpenGLRaw == 1.2.*, StateVar == 1.0.*, Tensor == 1.0.*
    ghc-options: -Wall
    if os(windows) && flag(UseNativeWindowsLibraries)
       cpp-options: "-DCALLCONV=stdcall"
diff --git a/Graphics/UI/GLUT/Callbacks/Registration.hs b/Graphics/UI/GLUT/Callbacks/Registration.hs
--- a/Graphics/UI/GLUT/Callbacks/Registration.hs
+++ b/Graphics/UI/GLUT/Callbacks/Registration.hs
@@ -27,7 +27,6 @@
 import Foreign.Ptr
 import Graphics.UI.GLUT.Raw
 import Graphics.UI.GLUT.Window
-import System.IO.Unsafe
 
 --------------------------------------------------------------------------------
 -- No timer callback here, because they are one-shot and "self destroy"
diff --git a/Graphics/UI/GLUT/Colormap.hs b/Graphics/UI/GLUT/Colormap.hs
--- a/Graphics/UI/GLUT/Colormap.hs
+++ b/Graphics/UI/GLUT/Colormap.hs
@@ -47,7 +47,6 @@
 import Graphics.UI.GLUT.QueryUtils
 import Graphics.UI.GLUT.Raw
 import Graphics.UI.GLUT.Types
-import Graphics.UI.GLUT.Window
 
 --------------------------------------------------------------------------------
 
diff --git a/Graphics/UI/GLUT/GameMode.hs b/Graphics/UI/GLUT/GameMode.hs
--- a/Graphics/UI/GLUT/GameMode.hs
+++ b/Graphics/UI/GLUT/GameMode.hs
@@ -36,7 +36,6 @@
 import Graphics.Rendering.OpenGL ( GLenum, Size(..) )
 import Graphics.UI.GLUT.Raw
 import Graphics.UI.GLUT.Types
-import Graphics.UI.GLUT.Window
 
 --------------------------------------------------------------------------------
 
diff --git a/Graphics/UI/GLUT/Menu.hs b/Graphics/UI/GLUT/Menu.hs
--- a/Graphics/UI/GLUT/Menu.hs
+++ b/Graphics/UI/GLUT/Menu.hs
@@ -35,8 +35,6 @@
 import Graphics.UI.GLUT.QueryUtils
 import Graphics.UI.GLUT.Raw
 import Graphics.UI.GLUT.Types
-import Graphics.UI.GLUT.Window
-import System.IO.Unsafe
 
 --------------------------------------------------------------------------------
 
diff --git a/Graphics/UI/GLUT/Overlay.hs b/Graphics/UI/GLUT/Overlay.hs
--- a/Graphics/UI/GLUT/Overlay.hs
+++ b/Graphics/UI/GLUT/Overlay.hs
@@ -35,7 +35,6 @@
 import Graphics.UI.GLUT.QueryUtils
 import Graphics.UI.GLUT.Raw
 import Graphics.UI.GLUT.Types
-import Graphics.UI.GLUT.Window
 
 --------------------------------------------------------------------------------
 
diff --git a/Graphics/UI/GLUT/Raw/Functions.hs b/Graphics/UI/GLUT/Raw/Functions.hs
--- a/Graphics/UI/GLUT/Raw/Functions.hs
+++ b/Graphics/UI/GLUT/Raw/Functions.hs
@@ -161,7 +161,7 @@
 
 import Foreign.C.Types
 import Foreign.Ptr
-import Graphics.Rendering.OpenGL ( GLint, GLenum, GLfloat, GLdouble )
+import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
 import Graphics.UI.GLUT.Raw.APIEntry
 import Graphics.UI.GLUT.Raw.Callbacks
 
