diff --git a/help.txt b/help.txt
--- a/help.txt
+++ b/help.txt
@@ -7,29 +7,33 @@
               --skip=PATTERN      skip examples that match given PATTERN
 
 RUNNER OPTIONS
-        --[no-]dry-run          pretend that everything passed; don't verify
-                                anything
-        --[no-]focused-only     do not run anything, unless there are focused
-                                spec items
-        --[no-]fail-on=ITEMS    empty: fail if all spec items have been filtered
-                                focused: fail on focused spec items
-                                pending: fail on pending spec items
-                                empty-description: fail on empty descriptions
-        --[no-]strict           same as --fail-on=focused,pending
-        --[no-]fail-fast        abort on first failure
-        --[no-]randomize        randomize execution order
-  -r    --rerun                 rerun all examples that failed in the previous
-                                test run (only works in combination with
-                                --failure-report or in GHCi)
-        --failure-report=FILE   read/write a failure report for use with --rerun
-        --rerun-all-on-success  run the whole test suite after a previously
-                                failing rerun succeeds for the first time (only
-                                works in combination with --rerun)
-  -j N  --jobs=N                run at most N parallelizable tests
-                                simultaneously (default: number of available
-                                processors)
-        --seed=N                used seed for --randomize and QuickCheck
-                                properties
+        --[no-]dry-run               pretend that everything passed; don't
+                                     verify anything
+        --[no-]focused-only          do not run anything, unless there are
+                                     focused spec items
+        --[no-]fail-on=ITEMS         empty: fail if all spec items have been
+                                     filtered
+                                     focused: fail on focused spec items
+                                     pending: fail on pending spec items
+                                     empty-description: fail on empty
+                                     descriptions
+        --[no-]strict                same as --fail-on=focused,pending
+        --[no-]fail-fast             abort on first failure
+        --[no-]randomize             randomize execution order
+  -r    --[no-]rerun                 rerun all examples that failed in the
+                                     previous test run (only works in
+                                     combination with --failure-report or in
+                                     GHCi)
+        --failure-report=FILE        read/write a failure report for use with
+                                     --rerun
+        --[no-]rerun-all-on-success  run the whole test suite after a previously
+                                     failing rerun succeeds for the first time
+                                     (only works in combination with --rerun)
+  -j N  --jobs=N                     run at most N parallelizable tests
+                                     simultaneously (default: number of
+                                     available processors)
+        --seed=N                     used seed for --randomize and QuickCheck
+                                     properties
 
 FORMATTER OPTIONS
   -f NAME  --format=NAME           use a custom formatter; this can be one of
diff --git a/hspec-core.cabal b/hspec-core.cabal
--- a/hspec-core.cabal
+++ b/hspec-core.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:             hspec-core
-version:          2.11.11
+version:          2.11.12
 license:          MIT
 license-file:     LICENSE
 copyright:        (c) 2011-2025 Simon Hengel,
@@ -140,7 +140,7 @@
     , filepath
     , haskell-lexer
     , hspec-expectations ==0.8.4.*
-    , hspec-meta ==2.11.11
+    , hspec-meta ==2.11.12
     , process
     , quickcheck-io >=0.2.0
     , random
diff --git a/src/GetOpt/Declarative/Util.hs b/src/GetOpt/Declarative/Util.hs
--- a/src/GetOpt/Declarative/Util.hs
+++ b/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/src/Test/Hspec/Core/Config/Definition.hs b/src/Test/Hspec/Core/Config/Definition.hs
--- a/src/Test/Hspec/Core/Config/Definition.hs
+++ b/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/version.yaml b/version.yaml
--- a/version.yaml
+++ b/version.yaml
@@ -1,4 +1,4 @@
-version: &version 2.11.11
+version: &version 2.11.12
 synopsis: A Testing Framework for Haskell
 author: Simon Hengel <sol@typeful.net>
 maintainer: Simon Hengel <sol@typeful.net>
