diff --git a/gipeda.cabal b/gipeda.cabal
--- a/gipeda.cabal
+++ b/gipeda.cabal
@@ -1,5 +1,5 @@
 name:                gipeda
-version:             0.3.2.1
+version:             0.3.2.2
 category:            Development
 synopsis:            Git Performance Dashboard
 description:
@@ -76,12 +76,12 @@
       vector               >= 0.10  && <0.12,
       cassava              >= 0.4   && <0.5,
       yaml                 >= 0.8   && <0.9,
-      aeson                >= 0.7   && <0.12,
+      aeson                >= 0.7   && <1.1,
       scientific           >= 0.3   && <0.4,
       gitlib               >= 3.1.0.2 && <3.2,
       gitlib-libgit2,
       tagged               >= 0.7   && <0.9,
-      extra                >= 1     && <1.5,
+      extra                >= 1     && <1.6,
       file-embed           >= 0.0.9 && < 0.0.11,
       concurrent-output    >= 1.7   && < 1.8,
       transformers         >= 0.4   && < 0.6
diff --git a/src/BenchmarkSettings.hs b/src/BenchmarkSettings.hs
--- a/src/BenchmarkSettings.hs
+++ b/src/BenchmarkSettings.hs
@@ -87,7 +87,7 @@
    , revisionInfo :: String
    , diffLink :: Maybe String
    , limitRecent :: Integer
-   , start :: String
+   , start :: Maybe String
    , interestingTags :: Maybe String
    , interestingBranches :: Maybe String
    , benchSettings :: BenchName -> BenchSettings
@@ -99,7 +99,7 @@
                  <*> v .: "revisionInfo"
                  <*> v .: "diffLink"
                  <*> v .: "limitRecent"
-                 <*> v .: "start"
+                 <*> v .:? "start"
                  <*> v .:? "interestingTags"
                  <*> v .:? "interestingBranches"
                  <*> (unS <$> v.: "benchmarks")
diff --git a/src/Shake.hs b/src/Shake.hs
--- a/src/Shake.hs
+++ b/src/Shake.hs
@@ -46,11 +46,15 @@
 gitRange :: Action [String]
 gitRange = do
     s <- liftIO $ S.readSettings "gipeda.yaml"
-    let first = S.start s
     heads <- readFileLines "site/out/heads.txt"
-    Stdout range <- git "log" $ ["--format=%H","^"++first] ++ heads
+    Stdout range <- git "log" $ ["--format=%H"] ++ excludePreStart s  ++ heads
     return $ words range
 
+excludePreStart :: S.Settings -> [String]
+excludePreStart s = case S.start s of
+    Just hash -> ["^" ++ hash ++ "^@"]
+    Nothing   -> []
+
 needIfThere :: [FilePath] -> Action [FilePath]
 needIfThere files = do
     existing <- filterM doesFileExist files
@@ -79,6 +83,11 @@
         Nothing -> return []
         Just p ->  findRecent logSource m (n-1) p
 
+descendsFromStart :: S.Settings -> Hash -> Action Bool
+descendsFromStart s hash = case S.start s of
+    Just startHash -> liftAction $ isGitAncestor "repository" startHash hash
+    Nothing        -> return True
+
 newtype LimitRecent = LimitRecent ()
     deriving (Show,Typeable,Eq,Hashable,Binary,NFData)
 
@@ -194,10 +203,7 @@
         heads <- readFileLines "site/out/heads.txt"
 
         s <- liftIO $ S.readSettings "gipeda.yaml"
-        let first = S.start s
-
-        Stdout stdout <- git "log" $
-                "--format=%H;%P": ("^"++first) : heads
+        Stdout stdout <- git "log" $ ["--format=%H;%P"] ++ excludePreStart s ++ heads
         writeFileChanged out stdout
     want ["site/out/history.csv"]
 
@@ -240,7 +246,7 @@
                 writeFileChanged out ""
             Just pattern -> do
                 Stdout tags <- git "tag" ["-l", pattern]
-                tags' <- filterM (liftAction . isGitAncestor "repository" (S.start s)) (lines tags)
+                tags' <- filterM (descendsFromStart s) (lines tags)
                 writeFileChanged out (unlines tags')
 
     "site/out/branches.txt" %> \ out -> do
@@ -253,7 +259,7 @@
                 writeFileChanged out ""
             Just pattern -> do
                 Stdout branches <- git "branch" ["--list", pattern]
-                branches <- filterM (liftAction . isGitAncestor "repository" (S.start s)) (map (drop 2) $ lines branches)
+                branches <- filterM (descendsFromStart s) (map (drop 2) $ lines branches)
                 branches <- filterM (\b -> liftAction $ not <$> isGitAncestor "repository" b "master") branches
                 writeFileChanged out (unlines branches)
 
