diff --git a/doc/Breakout.html b/doc/Breakout.html
--- a/doc/Breakout.html
+++ b/doc/Breakout.html
@@ -104,7 +104,7 @@
 <span class='hs-varop'>&gt;</span>   <span class='hs-comment'>-- Wrapping up the init phase</span>
 <span class='hs-varop'>&gt;</span>   <span class='hs-varid'>closed</span> <span class='hs-keyglyph'>&larr;</span> <span class='hs-varid'>newIORef</span> <span class='hs-conid'>False</span>
 <span class='hs-varop'>&gt;</span>   <span class='hs-varid'>windowSizeCallback</span> <span class='hs-varop'>$=</span> <span class='hs-varid'>resizeGLScene</span> <span class='hs-varid'>windowSizeSink</span>
-<span class='hs-varop'>&gt;</span>   <span class='hs-varid'>windowCloseCallback</span> <span class='hs-varop'>$=</span> <span class='hs-varid'>writeIORef</span> <span class='hs-varid'>closed</span> <span class='hs-conid'>True</span>
+<span class='hs-varop'>&gt;</span>   <span class='hs-varid'>windowCloseCallback</span> <span class='hs-varop'>$=</span> <span class='hs-layout'>(</span><span class='hs-varid'>writeIORef</span> <span class='hs-varid'>closed</span> <span class='hs-conid'>True</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>True</span><span class='hs-layout'>)</span>
 <span class='hs-varop'>&gt;</span>   <span class='hs-varid'>initGL</span> <span class='hs-num'>640</span> <span class='hs-num'>480</span>
 <span class='hs-varop'>&gt;</span>
 <span class='hs-varop'>&gt;</span>   <span class='hs-comment'>-- All we need to get going is an IO-valued signal and an IO</span>
diff --git a/doc/Chase.html b/doc/Chase.html
--- a/doc/Chase.html
+++ b/doc/Chase.html
@@ -53,7 +53,7 @@
 <span class='hs-varop'>&gt;</span>
 <span class='hs-varop'>&gt;</span>     <span class='hs-varid'>closed</span> <span class='hs-keyglyph'>&larr;</span> <span class='hs-varid'>newIORef</span> <span class='hs-conid'>False</span>
 <span class='hs-varop'>&gt;</span>     <span class='hs-varid'>windowSizeCallback</span> <span class='hs-varop'>$=</span> <span class='hs-varid'>resizeGLScene</span> <span class='hs-varid'>windowSizeSink</span>
-<span class='hs-varop'>&gt;</span>     <span class='hs-varid'>windowCloseCallback</span> <span class='hs-varop'>$=</span> <span class='hs-varid'>writeIORef</span> <span class='hs-varid'>closed</span> <span class='hs-conid'>True</span>
+<span class='hs-varop'>&gt;</span>     <span class='hs-varid'>windowCloseCallback</span> <span class='hs-varop'>$=</span> <span class='hs-layout'>(</span><span class='hs-varid'>writeIORef</span> <span class='hs-varid'>closed</span> <span class='hs-conid'>True</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>True</span><span class='hs-layout'>)</span>
 <span class='hs-varop'>&gt;</span>     <span class='hs-varid'>initGL</span> <span class='hs-num'>640</span> <span class='hs-num'>480</span>
 <span class='hs-varop'>&gt;</span>
 <span class='hs-varop'>&gt;</span>     <span class='hs-varid'>network</span> <span class='hs-keyglyph'>&larr;</span> <span class='hs-varid'>start</span> <span class='hs-varop'>$</span> <span class='hs-keyword'>do</span>
diff --git a/elerea-examples.cabal b/elerea-examples.cabal
--- a/elerea-examples.cabal
+++ b/elerea-examples.cabal
@@ -1,5 +1,5 @@
 Name:                elerea-examples
-Version:             2.2.1
+Version:             2.2.2
 Cabal-Version:       >= 1.2
 Synopsis:            Example applications for Elerea
 Category:            reactivity, FRP
@@ -25,7 +25,7 @@
 
 Author:              Patai Gergely
 Maintainer:          Patai Gergely (patai@iit.bme.hu)
-Copyright:           (c) 2009-2011, Patai Gergely
+Copyright:           (c) 2009-2012, Patai Gergely
 License:             BSD3
 License-File:        LICENSE
 Stability:           experimental
@@ -50,17 +50,17 @@
 Executable elerea-bounce
   HS-Source-Dirs:    src/Bounce
   Main-IS:           Main.hs
-  Build-Depends:     base >= 3 && < 5, elerea >= 2.2.0, OpenGL, GLFW >= 0.4
+  Build-Depends:     base >= 3 && < 5, elerea >= 2.2.0, OpenGL, GLFW >= 0.5 && < 0.6
   GHC-Options:       -O2 -fno-warn-deprecated-flags
 
 Executable elerea-breakout
   HS-Source-Dirs:    src
   Main-IS:           Breakout.lhs
-  Build-Depends:     base >= 3 && < 5, elerea >= 2.2.0, OpenGL, GLFW >= 0.4
+  Build-Depends:     base >= 3 && < 5, elerea >= 2.2.0, OpenGL, GLFW >= 0.5 && < 0.6
   GHC-Options:       -O2 -fno-warn-deprecated-flags
 
 Executable elerea-chase
   HS-Source-Dirs:    src
   Main-IS:           Chase.lhs
-  Build-Depends:     base >= 3 && < 5, elerea >= 2.2.0, OpenGL, GLFW >= 0.4
+  Build-Depends:     base >= 3 && < 5, elerea >= 2.2.0, OpenGL, GLFW >= 0.5 && < 0.6
   GHC-Options:       -O2 -fno-warn-deprecated-flags
diff --git a/src/Bounce/Main.hs b/src/Bounce/Main.hs
--- a/src/Bounce/Main.hs
+++ b/src/Bounce/Main.hs
@@ -119,7 +119,7 @@
 
   closed <- newIORef False
   windowSizeCallback $= resizeGLScene
-  windowCloseCallback $= writeIORef closed True
+  windowCloseCallback $= (writeIORef closed True >> return True)
   initGL 800 800
 
   unitCircle <- defineNewList Compile $ renderPrimitive TriangleStrip $ forM_ [0..20] $ \i -> do
diff --git a/src/Breakout.lhs b/src/Breakout.lhs
--- a/src/Breakout.lhs
+++ b/src/Breakout.lhs
@@ -116,7 +116,7 @@
 >   -- Wrapping up the init phase
 >   closed <- newIORef False
 >   windowSizeCallback $= resizeGLScene windowSizeSink
->   windowCloseCallback $= writeIORef closed True
+>   windowCloseCallback $= (writeIORef closed True >> return True)
 >   initGL 640 480
 >
 >   -- All we need to get going is an IO-valued signal and an IO
diff --git a/src/Chase.lhs b/src/Chase.lhs
--- a/src/Chase.lhs
+++ b/src/Chase.lhs
@@ -38,7 +38,7 @@
 >
 >     closed <- newIORef False
 >     windowSizeCallback $= resizeGLScene windowSizeSink
->     windowCloseCallback $= writeIORef closed True
+>     windowCloseCallback $= (writeIORef closed True >> return True)
 >     initGL 640 480
 >
 >     network <- start $ do
