diff --git a/src/Yesod/Paginate.hs b/src/Yesod/Paginate.hs
--- a/src/Yesod/Paginate.hs
+++ b/src/Yesod/Paginate.hs
@@ -66,11 +66,14 @@
         sel u
 
     let route = pageRoute c . fromIntegral
+        pp | cp == 1 = Nothing
+           | cp == 2 = Just (firstPageRoute c)
+           | otherwise = Just (route $ cp - 1)
 
     return Page { pageResults = take (fromIntegral $ pageSize c) es
                 , firstPage = if cp >= 2 then Just (firstPageRoute c) else Nothing
                 , nextPage = if fromIntegral (length es) == pageSize c + 1
                                  then Just (route $ cp + 1)
                                  else Nothing
-                , previousPage = if cp == 1 then Nothing else Just (route $ cp - 1)
+                , previousPage = pp
                 }
diff --git a/yesod-pagination.cabal b/yesod-pagination.cabal
--- a/yesod-pagination.cabal
+++ b/yesod-pagination.cabal
@@ -1,5 +1,5 @@
 name:                yesod-pagination
-version:             1.0.0.0
+version:             1.1.0.0
 synopsis:            Pagination in Yesod
 description:         Easy pagination for Yesod.
 homepage:            https://github.com/joelteon/yesod-pagination
