diff --git a/darcs-beta.cabal b/darcs-beta.cabal
--- a/darcs-beta.cabal
+++ b/darcs-beta.cabal
@@ -1,5 +1,5 @@
 Name: darcs-beta
-version:        2.3.98.3
+version:        2.3.99.2
 License:        GPL
 License-file:   COPYING
 Author:         David Roundy <droundy@darcs.net>, <darcs-users@darcs.net>
@@ -323,7 +323,7 @@
                    html         == 1.0.*,
                    filepath     == 1.1.*,
                    haskeline    >= 0.6.1 && < 0.7,
-                   hashed-storage >= 0.4.5 && < 0.5
+                   hashed-storage >= 0.4.7 && < 0.5
 
   if !os(windows)
     build-depends: unix >= 1.0 && < 2.5
diff --git a/release/distributed-context b/release/distributed-context
--- a/release/distributed-context
+++ b/release/distributed-context
@@ -1,1 +1,1 @@
-Just "\nContext:\n\n[TAG 2.3.98.3\nReinier Lamers <tux_rocker@reinier.de>**20100126101458\n Ignore-this: eb49d49537d842e4556b177adb720c19\n] \n"
+Just "\nContext:\n\n[TAG 2.3.99.2\nReinier Lamers <tux_rocker@reinier.de>**20100218180015\n Ignore-this: b0f18efa7fef5783a6bc43604e39ab3c\n] \n"
diff --git a/src/Darcs/Repository/Repair.hs b/src/Darcs/Repository/Repair.hs
--- a/src/Darcs/Repository/Repair.hs
+++ b/src/Darcs/Repository/Repair.hs
@@ -164,9 +164,9 @@
   working <- expand =<< restrict pristine <$> readPlainTree "."
   working_hashed <- darcsUpdateHashes working
   let index_paths = [ p | (p, _) <- list index ]
-      pristine_paths = [ p | (p, _) <- list pristine ]
-      index_extra = index_paths \\ pristine_paths
-      pristine_extra = pristine_paths \\ index_paths
+      working_paths = [ p | (p, _) <- list working ]
+      index_extra = index_paths \\ working_paths
+      working_extra = working_paths \\ index_paths
       gethashes p (Just i1) (Just i2) = (p, itemHash i1, itemHash i2)
       gethashes p (Just i1) Nothing   = (p, itemHash i1, NoHash)
       gethashes p   Nothing (Just i2) = (p,      NoHash, itemHash i2)
@@ -180,9 +180,9 @@
                                   | (p, h1, h2) <- mismatches ]
   unless (quiet || null index_extra) $
          putStrLn $ "Extra items in index!\n" ++ format index_extra
-  unless (quiet || null pristine_extra) $
-         putStrLn $ "Missing items in index!\n" ++ format pristine_extra
+  unless (quiet || null working_extra) $
+         putStrLn $ "Missing items in index!\n" ++ format working_extra
   unless (quiet || null mismatches) $
          putStrLn $ "Hash mismatch(es)!\n" ++ mismatches_disp
-  return $ null index_extra && null pristine_extra && null mismatches
+  return $ null index_extra && null working_extra && null mismatches
 
diff --git a/src/Darcs/RunCommand.hs b/src/Darcs/RunCommand.hs
--- a/src/Darcs/RunCommand.hs
+++ b/src/Darcs/RunCommand.hs
@@ -56,6 +56,7 @@
 import Darcs.RepoPath ( getCurrentDirectory )
 import Darcs.Test ( run_posthook, run_prehook )
 import Darcs.Utils ( formatPath )
+import Data.List ( intersperse )
 import Printer ( text )
 import URL ( setDebugHTTP, setHTTPPipelining )
 
@@ -150,14 +151,9 @@
   return $ already ++ defaults
 
 get_options_options :: [OptDescr DarcsFlag] -> String
-get_options_options [] = ""
-get_options_options (o:os) =
-    get_long_option o ++"\n"++ get_options_options os
-
-get_long_option :: OptDescr DarcsFlag -> String
-get_long_option (Option _ [] _ _) = ""
-get_long_option (Option a (o:os) b c) = "--"++o++
-                 get_long_option (Option a os b c)
+get_options_options = concat . intersperse "\n" . concatMap goo
+ where
+  goo (Option _ os _ _) = map ("--"++) os
 
 run_raw_supercommand :: DarcsCommand -> [String] -> IO ()
 run_raw_supercommand super [] =
