diff --git a/bluetile.cabal b/bluetile.cabal
--- a/bluetile.cabal
+++ b/bluetile.cabal
@@ -1,5 +1,5 @@
 Name:                bluetile
-Version:             0.3
+Version:             0.3.1
 synopsis:            A modern tiling window manager with a gentle learning curve
 description:
   Bluetile is a tiling window manager for X based on xmonad. Windows are arranged
@@ -7,7 +7,8 @@
   screen use. Bluetile's focus lies on making the tiling paradigm easily
   accessible to users coming from traditional window managers by drawing
   on known conventions and providing both mouse and keyboard access for all features.
-  It also tries to be usable 'out of the box', making configuration unnecessary.
+  It also tries to be usable 'out of the box', requiring minimal to
+  no configuration in most cases.
 category:            System
 License:             BSD3
 License-file:        LICENSE
@@ -29,7 +30,8 @@
   Main-is:           Main.hs
   Hs-Source-Dirs:    src
   Build-Depends:     base>=3, base<4, containers, process,
-                     xmonad-bluetilebranch>=0.8.1.3, xmonad-contrib-bluetilebranch>=0.8.1.3
+                     xmonad-bluetilebranch>=0.8.1.3, xmonad-contrib-bluetilebranch>=0.8.1.3,
+                     X11<1.5.0.0
   Ghc-Options:       -Wall
 
 Executable bluetiledock
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -26,11 +26,24 @@
 import System.FilePath(pathSeparator)
 
 import Paths_bluetile
+import Data.Version(showVersion)
 
 -- | The entry point into bluetile. Just launch with the default
 -- configuration. Compiling a custom configuration is not supported for now.
 main :: IO ()
 main = do
+    -- process arguments
+    args <- getArgs
+    case args of
+        []                    -> launch
+        ["--resume", _]       -> launch
+        ["--help"]            -> usage
+        ["--restart"]         -> sendRestart >> return ()
+        ["--version"]         -> putStrLn ("bluetile " ++ showVersion version)
+        _                     -> fail "unrecognized flags"
+
+launch :: IO ()
+launch = do
     putStrLn "Welcome to Bluetile! The window manager is now attempting to start up."
     putStrLn "Information: Two helper applications should appear (Bluetile's dock and"
     putStrLn "a greeting screen). However, even if you see these applications, the actual"
@@ -49,16 +62,7 @@
     blueTileConfig' <- checkTerminal $ blueTileConfig dockHandle
     installSignalHandlers -- important to ignore SIGCHLD from now on to avoid zombies
 
-    -- process arguments
-    let launch = xmonad blueTileConfig'
-    args <- getArgs
-    case args of
-        []                    -> launch
-        ["--resume", _]       -> launch
-        ["--help"]            -> usage
-        ["--restart"]         -> sendRestart >> return ()
-        ["--version"]         -> putStrLn ("bluetile 0.1")
-        _                     -> fail "unrecognized flags"
+    xmonad blueTileConfig'
 
 usage :: IO ()
 usage = do
