diff --git a/fltkhs.cabal b/fltkhs.cabal
--- a/fltkhs.cabal
+++ b/fltkhs.cabal
@@ -1,5 +1,5 @@
 name : fltkhs
-version : 0.7.0.0
+version : 0.7.0.1
 synopsis : FLTK bindings
 description: Low level bindings for the FLTK GUI toolkit. For installation and quick start instruction please scroll all the way down to the README.
 license : MIT
diff --git a/src/Graphics/UI/FLTK/LowLevel/GlWindow.chs b/src/Graphics/UI/FLTK/LowLevel/GlWindow.chs
--- a/src/Graphics/UI/FLTK/LowLevel/GlWindow.chs
+++ b/src/Graphics/UI/FLTK/LowLevel/GlWindow.chs
@@ -17,6 +17,7 @@
 #include "Fl_C.h"
 #include "Fl_Double_WindowC.h"
 #include "Fl_Gl_WindowC.h"
+import C2HS hiding (cFromEnum, cFromBool, cToBool,cToEnum)
 import Foreign
 import Graphics.UI.FLTK.LowLevel.Fl_Types
 import Graphics.UI.FLTK.LowLevel.Fl_Enumerations
@@ -131,7 +132,7 @@
 {# fun Fl_Gl_Window_set_mode as setMode' { id `Ptr ()',`Int' } -> `Int' #}
 instance (impl ~ (Modes ->  IO ())) => Op (SetMode ()) GlWindow orig impl where
   runOp _ _ win a = withRef win $ \winPtr -> setMode' winPtr (modesToInt a) >> return ()
-{# fun Fl_Gl_Window_context as context' { id `Ptr ()' } -> `Ptr ()' unsafeToRef #}
+{# fun Fl_Gl_Window_context as context' { id `Ptr ()' } -> `Ptr ()'  #}
 instance (impl ~ ( IO (Ref FlGlContext))) => Op (GetContext ()) GlWindow orig impl where
   runOp _ _ win = withRef win $ \winPtr -> context' winPtr >>= toRef
 {# fun Fl_Gl_Window_set_context as setContext' { id `Ptr ()',id `Ptr ()' } -> `()' supressWarningAboutRes #}
diff --git a/src/Graphics/UI/FLTK/LowLevel/Glut.chs b/src/Graphics/UI/FLTK/LowLevel/Glut.chs
--- a/src/Graphics/UI/FLTK/LowLevel/Glut.chs
+++ b/src/Graphics/UI/FLTK/LowLevel/Glut.chs
@@ -404,7 +404,7 @@
 glutInitWindowSize (Size (Width w) (Height h)) = glutInitWindowSize' (fromIntegral w) (fromIntegral h)
 {# fun flc_glutMainLoop as glutMainLoop { } -> `()' #}
 {# fun flc_glutCreateWindow as glutCreateWindow' {`CString'} -> `GlutWindow' GlutWindow #}
-glutCreateWindow :: T.Text -> IO ()
+glutCreateWindow :: T.Text -> IO GlutWindow
 glutCreateWindow t = copyTextToCString t >>= glutCreateWindow'
 {# fun flc_glutCreateSubWindow as glutCreateSubWindow' {windowNumber `GlutWindow',`Int',`Int',`Int',`Int'} -> `GlutWindow' GlutWindow #}
 glutCreateSubWindow :: GlutWindow -> Rectangle -> IO GlutWindow
@@ -456,14 +456,12 @@
 {# fun flc_glutAddSubMenu as glutAddSubMenu' {`CString', menuNumber `GlutMenu' } -> `()' #}
 glutAddSubMenu :: T.Text -> GlutMenu -> IO ()
 glutAddSubMenu t mn = copyTextToCString t >>= \t' -> glutAddSubMenu' t' mn
-{# fun flc_glutChangeToMenuEntry as glutChangeToMenuEntry'' {`Int', `CString', `Int'} -> `()' #}
-glutChangeToMenuEntry :: Int -> T.Text -> Int -> IO ()
-glutChangeToMenuEntry i t v = copyTextToCString t >>= \t' -> glutChangeToMenuEntry' i t' v
+{# fun flc_glutChangeToMenuEntry as glutChangeToMenuEntry' {`Int', `CString', `Int'} -> `()' #}
 glutChangeToMenuEntry :: Int -> T.Text -> IO ()
-glutChangeToMenuEntry index label = glutChangeToMenuEntry' index label 0
+glutChangeToMenuEntry index label = copyTextToCString label >>= \l -> glutChangeToMenuEntry' index l 0
 {# fun flc_glutChangeToSubMenu as glutChangeToSubMenu' {`Int', `CString', menuNumber `GlutMenu' } -> `()' #}
-glutChangeToSubMenu :: T.Text -> GlutMenu -> IO ()
-glutChangeToSubMenu t m = copyTextToCString t >>= \t' -> glutChangeToSubMenu' t' m
+glutChangeToSubMenu :: Int -> T.Text -> GlutMenu -> IO ()
+glutChangeToSubMenu i t m = copyTextToCString t >>= \t' -> glutChangeToSubMenu' i t' m
 {# fun flc_glutRemoveMenuItem as glutRemoveMenuItem {`Int' } -> `()' #}
 {# fun flc_glutAttachMenu as glutAttachMenu {menuNumber `GlutMenu'} -> `()' #}
 {# fun flc_glutDetachMenu as glutDetachMenu {menuNumber `GlutMenu'} -> `()' #}
