diff --git a/QuickCheck.cabal b/QuickCheck.cabal
--- a/QuickCheck.cabal
+++ b/QuickCheck.cabal
@@ -1,5 +1,5 @@
 Name: QuickCheck
-Version: 2.15
+Version: 2.15.0.1
 Cabal-Version: >= 1.10
 Build-type: Simple
 License: BSD3
@@ -65,7 +65,7 @@
 source-repository this
   type:     git
   location: https://github.com/nick8325/quickcheck
-  tag:      2.15
+  tag:      2.15.0.1
 
 flag templateHaskell
   Description: Build Test.QuickCheck.All, which uses Template Haskell.
diff --git a/src/Test/QuickCheck/Property.hs b/src/Test/QuickCheck/Property.hs
--- a/src/Test/QuickCheck/Property.hs
+++ b/src/Test/QuickCheck/Property.hs
@@ -659,6 +659,7 @@
 #ifndef NO_DEEPSEQ
   s `deepseq`
 #endif
+  b `seq`
   mapTotalResult $
     \res -> res { classes = (s, b):classes res }
 
diff --git a/src/Test/QuickCheck/Test.hs b/src/Test/QuickCheck/Test.hs
--- a/src/Test/QuickCheck/Test.hs
+++ b/src/Test/QuickCheck/Test.hs
@@ -403,10 +403,13 @@
                   }
 
 showTestCount :: State -> String
-showTestCount st =
-     number (numSuccessTests st) "test"
-  ++ concat [ "; " ++ show (numDiscardedTests st) ++ " discarded"
-            | numDiscardedTests st > 0
+showTestCount st = formatTestCount (numSuccessTests st) (numDiscardedTests st)
+
+formatTestCount :: Int -> Int -> String
+formatTestCount succeeded discarded =
+     number succeeded "test"
+  ++ concat [ "; " ++ show discarded ++ " discarded"
+            | discarded > 0
             ]
 
 runATest :: State -> Property -> IO Result
diff --git a/tests/DiscardRatio.hs b/tests/DiscardRatio.hs
--- a/tests/DiscardRatio.hs
+++ b/tests/DiscardRatio.hs
@@ -49,3 +49,8 @@
   putStrLn "\nExpecting success (discard ratio 40): x < 50 ==> True"
   quickCheckYes $ withDiscardRatio 40 p50
   quickCheckYesWith stdArgs{maxDiscardRatio = 40} p50
+
+  -- Annoying interactions of discard and cover
+  quickCheckYes $ forAllBlind (oneof [return True, return discard]) $ \ b -> cover 10 b "b" True
+  quickCheck $ cover 10 discard "b" True
+  quickCheck $ classify discard "b" True
