diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
--- /dev/null
+++ b/CHANGELOG
@@ -0,0 +1,46 @@
+Version 0.0.1.1
+===============
+
+Renamec the change log from CHANGES.md to CHANGELOG so
+that Hackage will display it.
+
+Minor HLint changes (no change in behavior or API).
+
+Version 0.0.1.0
+===============
+
+Updated to use pipes version 4; there is no change in the
+library API (pipes is only used by the hmcpi executable).
+
+Version 0.0.0.4
+===============
+
+An initial attempt at handling invalid commands has been added by
+flushing the connection buffer each time a command or query is sent.
+
+Queries now raise an `IOError` if they return the message `Fail` (it
+could also be due to the previous command failing if the buffer
+flush mentioned above did not catch the error).
+
+Added the debugmcpi example. This is now built, along with hmcpi,
+by setting the build-debug configure option (which is turned off
+by default).
+
+Version 0.0.0.3
+===============
+
+The examples - apart from `hmcpi` - now accept the `--debug` command-line
+option which causes the messages sent to, and received from, MineCraft
+to be printed to the standard-error channel. The format of these 
+messages has been changed slightly.
+
+Version 0.0.0.2
+===============
+
+Minor document improvements. Added examples/XJump.hs, which is the
+example used in the documentation for Network.MineCraft.Pi.Client.
+
+Version 0.0.0.1
+===============
+
+Initial version.
diff --git a/examples/DebugMCPI.hs b/examples/DebugMCPI.hs
--- a/examples/DebugMCPI.hs
+++ b/examples/DebugMCPI.hs
@@ -57,8 +57,8 @@
 --   @query@ rather than handle the output here.
 handleUser :: String -> MCPI ()
 handleUser [] = return ()
-handleUser "quit" = liftIO $ exitSuccess
-handleUser "exit" = liftIO $ exitSuccess
+handleUser "quit" = liftIO exitSuccess
+handleUser "exit" = liftIO exitSuccess
 handleUser user = 
   case words user of
     ("command":comm:args) -> command comm args
diff --git a/examples/Shapes.hs b/examples/Shapes.hs
--- a/examples/Shapes.hs
+++ b/examples/Shapes.hs
@@ -1,5 +1,23 @@
 {-# LANGUAGE RecordWildCards #-}
 
+{-
+License:
+
+This code is placed in the Public Domain.
+
+Author:
+
+Douglas Burke (dburke.gw@gmail.com)
+
+Usage:
+
+  ./shapes
+
+Every second, report the block type that the user is standing on
+if it is different than the last report.
+
+-}
+
 module Main where
 
 import Control.Concurrent (threadDelay)
@@ -75,7 +93,7 @@
 
 renderShape :: Shapes -> MCPI ()
 renderShape = 
-  let rs (BlockList bt pos) = mapM_ (\p -> setBlock p bt) pos
+  let rs (BlockList bt pos) = mapM_ (`setBlock` bt) pos
       rs (BlockCuboid bt p1 p2) = setBlocks p1 p2 bt
   in mapM_ rs
 
@@ -117,7 +135,7 @@
   Pos {..} <- getPlayerTile
   let x1 = _x - 128
       y1 = _y + 20      
-  setBlocks (Pos x1 y1 (_z-1)) (Pos (x1+255) (y1+4) (_z+1)) $ sandstone
+  setBlocks (Pos x1 y1 (_z-1)) (Pos (x1+255) (y1+4) (_z+1)) sandstone
   
   forM_ [0..255] $ \ctr ->
     setBlocks 
@@ -135,7 +153,7 @@
       x2 = x1 + 2 * hw
       y2 = y1 + 2 * hw
       z = _z - 1
-  setBlocks (Pos x1 y1 (z-1)) (Pos x2 y2 (z-1)) $ sandstone
+  setBlocks (Pos x1 y1 (z-1)) (Pos x2 y2 (z-1)) sandstone
   
   forM_ [0..15] $ \j ->
     let ys = y1 + j * w
@@ -150,7 +168,6 @@
          (Pos xe ye z)
          $ BlockType ctr
 
--- TODO: report only when block data differs
 reportBlock :: MCPI ()
 reportBlock = 
   let go oPos = do
diff --git a/mcpi.cabal b/mcpi.cabal
--- a/mcpi.cabal
+++ b/mcpi.cabal
@@ -1,5 +1,5 @@
 Name:           mcpi
-Version:        0.0.1.0
+Version:        0.0.1.1
 Homepage:       https://github.com/DougBurke/hmcpi
 Bug-Reports:    https://github.com/DougBurke/hmcpi/issues
 Stability:      experimental
@@ -20,17 +20,18 @@
   as well as a program that lets you interact with MineCraft directly.
   .
   Please see the TODO.md file in the source code for an incomplete
-  list of possible changes, and the CHANGES.md file for changes
+  list of possible changes, and the CHANGELOG file for changes
   in the module.
 
 Tested-With:    GHC==7.4.1
 Cabal-Version:  >= 1.8
 Build-Type:     Simple
 
-Data-Files:     examples/README.md
-                examples/*.hs
+Extra-Source-Files:     CHANGELOG
+                        examples/README.md
+                        examples/*.hs
 
-source-repository  head
+Source-Repository  head
   type:            git
   location:        git://github.com/DougBurke/hmcpi.git
 
diff --git a/src/Network/MineCraft/Pi/Client/Internal.hs b/src/Network/MineCraft/Pi/Client/Internal.hs
--- a/src/Network/MineCraft/Pi/Client/Internal.hs
+++ b/src/Network/MineCraft/Pi/Client/Internal.hs
@@ -146,7 +146,7 @@
   withForeignPtr fbuf $ \bufPtr -> 
     let loop store = do
           nrec <- hGetBufNonBlocking _ciHandle bufPtr bufSize
-          if (nrec > 0)
+          if nrec > 0
             then peekCStringLen (bufPtr, nrec) >>= \str -> loop (store ++ str)
             else unless (null store) $ logMsg ci "FLUSH" store
     in loop []
