diff --git a/Test/Framework/Options.hs b/Test/Framework/Options.hs
--- a/Test/Framework/Options.hs
+++ b/Test/Framework/Options.hs
@@ -15,6 +15,8 @@
         -- ^ Maximum number of tests to generate when using something like QuickCheck
         topt_maximum_unsuitable_generated_tests :: f Int,
         -- ^ Maximum number of unsuitable tests to consider before giving up when using something like QuickCheck
+        topt_maximum_test_depth :: f Int,
+        -- ^ Maximum depth of generated tests when using something like SmallCheck
         topt_timeout :: f (Maybe Int)
         -- ^ The number of microseconds to run tests for before considering them a failure
     }
@@ -24,6 +26,7 @@
             topt_seed = Nothing,
             topt_maximum_generated_tests = Nothing,
             topt_maximum_unsuitable_generated_tests = Nothing,
+            topt_maximum_test_depth = Nothing,
             topt_timeout = Nothing
         }
     
@@ -31,5 +34,6 @@
             topt_seed = getLast (mappendBy (Last . topt_seed) to1 to2),
             topt_maximum_generated_tests = getLast (mappendBy (Last . topt_maximum_generated_tests) to1 to2),
             topt_maximum_unsuitable_generated_tests = getLast (mappendBy (Last . topt_maximum_unsuitable_generated_tests) to1 to2),
+            topt_maximum_test_depth = getLast (mappendBy (Last . topt_maximum_test_depth) to1 to2),
             topt_timeout = getLast (mappendBy (Last . topt_timeout) to1 to2)
         }
diff --git a/Test/Framework/Runners/Console.hs b/Test/Framework/Runners/Console.hs
--- a/Test/Framework/Runners/Console.hs
+++ b/Test/Framework/Runners/Console.hs
@@ -52,6 +52,9 @@
         Option [] ["maximum-unsuitable-generated-tests"]
             (ReqArg (\t -> mempty { ropt_test_options = Just (mempty { topt_maximum_unsuitable_generated_tests = Just (read t) }) }) "NUMBER")
             "how many unsuitable candidate tests something like QuickCheck should endure before giving up, by default",
+        Option ['d'] ["maximum-test-depth"]
+            (ReqArg (\t -> mempty { ropt_test_options = Just (mempty { topt_maximum_test_depth = Just (read t) }) }) "NUMBER")
+            "to what depth something like SmallCheck should test the properties, by default",
         Option ['o'] ["timeout"]
             (ReqArg (\t -> mempty { ropt_test_options = Just (mempty { topt_timeout = Just (Just (secondsToMicroseconds (read t))) }) }) "NUMBER")
             "how many seconds a test should be run for before giving up, by default",
diff --git a/Test/Framework/Runners/Core.hs b/Test/Framework/Runners/Core.hs
--- a/Test/Framework/Runners/Core.hs
+++ b/Test/Framework/Runners/Core.hs
@@ -59,5 +59,6 @@
             topt_seed = K $ topt_seed to `orElse` RandomSeed,
             topt_maximum_generated_tests = K $ topt_maximum_generated_tests to `orElse` 100,
             topt_maximum_unsuitable_generated_tests = K $ topt_maximum_unsuitable_generated_tests to `orElse` 1000,
+            topt_maximum_test_depth = K $ topt_maximum_test_depth to `orElse` 5,
             topt_timeout = K $ topt_timeout to `orElse` Nothing
         }
diff --git a/test-framework.cabal b/test-framework.cabal
--- a/test-framework.cabal
+++ b/test-framework.cabal
@@ -1,5 +1,5 @@
 Name:                test-framework
-Version:             0.4.1.1
+Version:             0.4.2.0
 Cabal-Version:       >= 1.2.3
 Category:            Testing
 Synopsis:            Framework for running and organising tests, with HUnit and QuickCheck support
@@ -29,7 +29,7 @@
                                 Test.Framework.Runners.Console
                                 Test.Framework.Runners.Options
                                 Test.Framework.Seed
-        
+
         Other-Modules:          Test.Framework.Core
                                 Test.Framework.Improving
                                 Test.Framework.Runners.Console.Colors
@@ -47,7 +47,7 @@
                                 Test.Framework.Runners.XML.JUnitWriter
                                 Test.Framework.Runners.XML
                                 Test.Framework.Utilities
-        
+
         Build-Depends:          ansi-terminal >= 0.4.0, ansi-wl-pprint >= 0.5.1,
                                 regex-posix >= 0.72, extensible-exceptions >= 0.1.1,
                                 old-locale >= 1.0, time >= 1.1.2,
@@ -56,7 +56,7 @@
                 Build-Depends:          base >= 3 && < 5, random >= 1.0, containers >= 0.1
         else
                 Build-Depends:          base < 3
-        
+
         Extensions:             CPP
                                 PatternGuards
                                 ExistentialQuantification
@@ -66,9 +66,9 @@
                                 TypeOperators
                                 FunctionalDependencies
                                 MultiParamTypeClasses
-        
+
         Ghc-Options:            -Wall
-        
+
         if impl(ghc)
                 Cpp-Options:            -DCOMPILER_GHC
 
@@ -88,7 +88,7 @@
                         Build-Depends:          base >= 3 && < 5, random >= 1.0, containers >= 0.1
                 else
                         Build-Depends:          base < 3
-        
+
                 Extensions:             CPP
                                         PatternGuards
                                         ExistentialQuantification
@@ -98,10 +98,10 @@
                                         TypeOperators
                                         FunctionalDependencies
                                         MultiParamTypeClasses
-        
+
                 Cpp-Options:            -DTEST
-        
+
                 Ghc-Options:            -Wall -threaded
-        
+
                 if impl(ghc)
                         Cpp-Options:            -DCOMPILER_GHC
