diff --git a/hspec-core/src/GetOpt/Declarative/Util.hs b/hspec-core/src/GetOpt/Declarative/Util.hs
--- a/hspec-core/src/GetOpt/Declarative/Util.hs
+++ b/hspec-core/src/GetOpt/Declarative/Util.hs
@@ -27,7 +27,7 @@
 
 condenseNoOptions :: [OptDescr a] -> [OptDescr a]
 condenseNoOptions options = case options of
-  Option "" [optionA] arg help : Option "" [optionB] _ _ : ys | optionB == ("no-" ++ optionA) ->
-    Option "" ["[no-]" ++ optionA] arg help : condenseNoOptions ys
+  Option short [optionA] arg help : Option "" [optionB] _ _ : ys | optionB == ("no-" ++ optionA) ->
+    Option short ["[no-]" ++ optionA] arg help : condenseNoOptions ys
   x : xs -> x : condenseNoOptions xs
   [] -> []
diff --git a/hspec-core/src/Test/Hspec/Core/Config/Definition.hs b/hspec-core/src/Test/Hspec/Core/Config/Definition.hs
--- a/hspec-core/src/Test/Hspec/Core/Config/Definition.hs
+++ b/hspec-core/src/Test/Hspec/Core/Config/Definition.hs
@@ -384,9 +384,9 @@
 
   , flag "fail-fast" setFailFast "abort on first failure"
   , flag "randomize" setRandomize "randomize execution order"
-  , mkOptionNoArg "rerun" (Just 'r') setRerun "rerun all examples that failed in the previous test run (only works in combination with --failure-report or in GHCi)"
+  , (flag "rerun" setRerun "rerun all examples that failed in the previous test run (only works in combination with --failure-report or in GHCi)") {optionShortcut = Just 'r'}
   , option "failure-report" (argument "FILE" return setFailureReport) "read/write a failure report for use with --rerun"
-  , mkOptionNoArg "rerun-all-on-success" Nothing setRerunAllOnSuccess "run the whole test suite after a previously failing rerun succeeds for the first time (only works in combination with --rerun)"
+  , flag "rerun-all-on-success" setRerunAllOnSuccess "run the whole test suite after a previously failing rerun succeeds for the first time (only works in combination with --rerun)"
   , mkOption "jobs" (Just 'j') (argument "N" readMaxJobs setMaxJobs) "run at most N parallelizable tests simultaneously (default: number of available processors)"
   , option "seed" (argument "N" readMaybe setSeed) "used seed for --randomize and QuickCheck properties"
   ]
@@ -457,8 +457,11 @@
     setRandomize :: Bool -> Config -> Config
     setRandomize value config = config {configRandomize = value}
 
-    setRerun config = config {configRerun = True}
-    setRerunAllOnSuccess config = config {configRerunAllOnSuccess = True}
+    setRerun :: Bool -> Config -> Config
+    setRerun value config = config {configRerun = value}
+
+    setRerunAllOnSuccess :: Bool -> Config -> Config
+    setRerunAllOnSuccess value config = config {configRerunAllOnSuccess = value}
 
 commandLineOnlyOptions :: [Option Config]
 commandLineOnlyOptions = [
diff --git a/hspec-meta.cabal b/hspec-meta.cabal
--- a/hspec-meta.cabal
+++ b/hspec-meta.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           hspec-meta
-version:        2.11.11
+version:        2.11.12
 synopsis:       A version of Hspec which is used to test Hspec itself
 description:    A stable version of Hspec which is used to test the
                 in-development version of Hspec.
