diff --git a/HSBencher/App.hs b/HSBencher/App.hs
--- a/HSBencher/App.hs
+++ b/HSBencher/App.hs
@@ -601,6 +601,7 @@
                                    proceed 
                            else runloop iter (M.insert bid (ccnum,Nothing) board) lastConfigured (nextrun:rest)
 
+              -- Keeps track of what's compiled.
               initBoard _ [] acc = acc 
               initBoard !iter ((bench,params):rest) acc = 
                 let bid = makeBuildID (target bench) $ toCompileFlags params 
@@ -618,7 +619,12 @@
               zippedruns = (concat$ zipWith (\ b cfs -> map (b,) cfs) benchlist allruns)
 
           unless recomp $ logT$ "Recompilation disabled, assuming standalone binaries are in the expected places!"
-          runloop 1 (initBoard 1 zippedruns M.empty) M.empty zippedruns
+          let startBoard = initBoard 1 zippedruns M.empty
+          Config{skipTo} <- ask
+          case skipTo of 
+            Nothing -> runloop 1 startBoard M.empty zippedruns
+            Just ix -> do logT$" !!! WARNING: SKIPPING AHEAD in configuration space; jumping to: "++show ix
+                          runloop ix startBoard M.empty (drop (ix-1) zippedruns)
 
 {-
         do Config{logOut, resultsOut, stdOut} <- ask
diff --git a/HSBencher/Config.hs b/HSBencher/Config.hs
--- a/HSBencher/Config.hs
+++ b/HSBencher/Config.hs
@@ -50,6 +50,7 @@
           | BinDir FilePath
           | NoRecomp | NoCabal | NoClean
           | ShortRun | KeepGoing | NumTrials String
+          | SkipTo String | RunID String
           | CabalPath String | GHCPath String                               
           | ShowHelp | ShowVersion
 #ifdef FUSION_TABLES
@@ -76,7 +77,7 @@
       , Option [] ["shortrun"] (NoArg ShortRun)
         "Elide command line args to benchmarks to perform a testing rather than benchmarking run."
       , Option ['k'] ["keepgoing"] (NoArg KeepGoing)
-        "Keep executing even after a build or run fails."
+        "Keep executing even after a build or run fails (default false)"
 #ifndef DISABLED 
       , Option [] ["no-cabal"] (NoArg NoCabal)
         "A shortcut to remove Cabal from the BuildMethods"
@@ -88,6 +89,12 @@
 
       , Option [] ["trials"] (ReqArg NumTrials "NUM")
         "The number of times to run each benchmark."
+
+      , Option [] ["runid"] (ReqArg RunID "NUM")
+        "Force run ID to be a specific string; useful for completing failed runs"
+      , Option [] ["skipto"] (ReqArg (SkipTo ) "NUM")
+        "Skip ahead to a specific point in the configuration space."
+
       , Option ['h'] ["help"] (NoArg ShowHelp)
         "Show this help message and exit."
 
@@ -124,12 +131,14 @@
   uname    <- runSL "uname -a"
   lspci    <- runLines "lspci"
   whos     <- runLines "who"
-  let runID = (hostname ++ "_" ++ show startTime)
+  let newRunID = (hostname ++ "_" ++ show startTime)
   let (branch,revision,depth) = gitInfo
   return $
     base
     { _HOSTNAME      = hostname
-    , _RUNID         = runID  
+    , _RUNID         = case runID of
+                        Just r -> r
+                        Nothing -> newRunID
     , _DATETIME      = show datetime
     , _TRIALS        = trials
     , _ENV_VARS      = show envs 
@@ -196,6 +205,8 @@
            , benchsetName   = Nothing
 --	   , trials         = read$ get "TRIALS"    "1"
 	   , trials         = 1
+	   , skipTo         = Nothing
+	   , runID          = Nothing
            , pathRegistry   = M.empty
 --	   , benchlist      = parseBenchList benchstr
 --	   , benchversion   = (benchF, ver)
@@ -247,6 +258,13 @@
                                     case reads s of
                                       (n,_):_ -> n
                                       [] -> error$ "--trials given bad argument: "++s }
+      doFlag (SkipTo s) r = r { skipTo=
+                                    case reads s of
+                                      (n,_):_ | n >= 1    -> Just n
+                                              | otherwise -> error$ "--skipto must be positive: "++s
+                                      [] -> error$ "--skipto given bad argument: "++s }
+      doFlag (RunID s) r = r { runID= Just s }
+
       -- Ignored options:
       doFlag ShowHelp r = r
       doFlag ShowVersion r = r
diff --git a/HSBencher/Types.hs b/HSBencher/Types.hs
--- a/HSBencher/Types.hs
+++ b/HSBencher/Types.hs
@@ -164,6 +164,8 @@
  , runTimeOut     :: Maybe Double -- ^ Timeout for running benchmarks (if not specified by the benchmark specifically)
  , maxthreads     :: Int
  , trials         :: Int    -- ^ number of runs of each configuration
+ , skipTo         :: Maybe Int -- ^ Where to start in the config space.
+ , runID          :: Maybe String -- ^ An over-ride for the run ID.
  , shortrun       :: Bool
  , doClean        :: Bool
  , keepgoing      :: Bool   -- ^ keep going after error
diff --git a/hsbencher.cabal b/hsbencher.cabal
--- a/hsbencher.cabal
+++ b/hsbencher.cabal
@@ -1,6 +1,6 @@
 
 name:                hsbencher
-version:             1.3.6
+version:             1.3.8
 -- CHANGELOG:
 -- 1.0   : Initial release, new flexible benchmark format.
 -- 1.1   : Change interface to RunInPlace
@@ -12,6 +12,7 @@
 -- 1.3.2 : change policy for timeouts and errors
 -- 1.3.4 : Add ability to prune/select benchmarks with commmand line args
 -- 1.3.6 : bugfix productivity for timeouts
+-- 1.3.8 : Added --skipto and --runid
 
 synopsis:  Flexible benchmark runner for Haskell and non-Haskell benchmarks.
 
@@ -60,6 +61,12 @@
  .
  More examples can be found here:
    <https://github.com/rrnewton/HSBencher/tree/master/example>
+ . 
+ ChangesLog:
+ .
+ * (1.3.8) Added @--skipto@ and @--runid@ arguments
+ * (1.3.4) Added ability to prune benchmarks with patterns on command line.
+
 
 license:             BSD3
 license-file:        LICENSE
