diff --git a/src/Network/WebSockets/Monad.hs b/src/Network/WebSockets/Monad.hs
--- a/src/Network/WebSockets/Monad.hs
+++ b/src/Network/WebSockets/Monad.hs
@@ -99,8 +99,11 @@
         Nothing -> return ()
         Just i  -> do
             _ <- liftIO $ forkIO $ forever $ do
-                sender E.ping ("Hi" :: ByteString)
+                -- An ugly hack here. We first sleep before sending the first
+                -- ping, so the ping (hopefully) doesn't interfere with the
+                -- intitial request/response.
                 threadDelay (i * 1000 * 1000)  -- seconds
+                sender E.ping ("Hi" :: ByteString)
             return ()
 
 -- | Receive some data from the socket, using a user-supplied parser.
diff --git a/websockets.cabal b/websockets.cabal
--- a/websockets.cabal
+++ b/websockets.cabal
@@ -1,5 +1,5 @@
 Name:    websockets
-Version: 0.3.1.0
+Version: 0.3.1.1
 
 Cabal-version:  >= 1.6
 
