diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,11 @@
+Version 0.6.0.3 released 26 Jul 2014
+
+* Disable the broken mercurial command server on Windows, falling back
+  on direct running of each command (Alan Brooks).
+
+* Added a script demonstrating use of filestore to query darcs repositories
+  (gwern).
+
 Version 0.6.0.2 released 08 Apr 2014
 
 * Bumped version for process so it will compile with GHC 7.8.1.
diff --git a/Data/FileStore/MercurialCommandServer.hs b/Data/FileStore/MercurialCommandServer.hs
--- a/Data/FileStore/MercurialCommandServer.hs
+++ b/Data/FileStore/MercurialCommandServer.hs
@@ -42,6 +42,7 @@
 import qualified Data.ByteString.Lazy as BL
 import qualified Data.ByteString.Lazy.UTF8 as LUTF8
 import qualified Data.Map as M
+import qualified System.Info as SI
 
 -- | Maximum number of servers to keep around
 maxPoolSize :: Int
@@ -218,12 +219,24 @@
       Left  () -> return ()
 
 -- | Check if the mercurial version supports servers
+--   On windows, don't even try because talking to hg over a pipe does not
+--   currently work correctly.
 checkVersion :: IO Bool
-checkVersion = do
-    (status,_,out) <- runShellCommand "." Nothing "hg" ["version", "-q"]
-    case status of
-      ExitFailure _ -> return False
-      ExitSuccess   -> return $ parseVersion (LUTF8.toString out) >= [2,0]
+checkVersion
+    | isOperatingSystem "mingw32" = return False
+    | otherwise                   = do
+        (status,_,out) <- runShellCommand "." Nothing "hg" ["version", "-q"]
+        case status of
+          ExitFailure _ -> return False
+          ExitSuccess   -> return $ parseVersion (LUTF8.toString out) >= [2,0]
+
+-- | Helps to find out what operating system we are on
+--   Example usage:
+--      isOperatingSystem "mingw32" (on windows)
+--      isOperatingSystem "darwin"
+--      isOperatingSystem "linux"
+isOperatingSystem :: String -> Bool
+isOperatingSystem sys = SI.os == sys
 
 -- | hg version -q returns something like "Mercurial Distributed SCM (version 1.9.1)"
 --   This function returns the list [1,9,1]
diff --git a/filestore.cabal b/filestore.cabal
--- a/filestore.cabal
+++ b/filestore.cabal
@@ -1,5 +1,5 @@
 Name:                filestore
-Version:             0.6.0.2
+Version:             0.6.0.3
 Cabal-Version:       >= 1.10
 Build-type:          Custom
 Synopsis:            Interface for versioning file stores.
