diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-reddit for haskell [![Build Status](https://travis-ci.org/intolerable/reddit.svg?branch=master)](https://travis-ci.org/intolerable/reddit)
+reddit for haskell [![Build Status](https://travis-ci.org/intolerable/reddit.svg?branch=v0.1)](https://travis-ci.org/intolerable/reddit)
 ---
 
 A Haskell library for interacting with the [Reddit API](http://reddit.com/api).
diff --git a/reddit.cabal b/reddit.cabal
--- a/reddit.cabal
+++ b/reddit.cabal
@@ -1,5 +1,5 @@
 name:                reddit
-version:             0.1.0.0
+version:             0.1.1.0
 synopsis:            Library for interfacing with Reddit's API
 description:
   A library for interfacing with Reddit's API in Haskell. Handles
@@ -90,7 +90,7 @@
   build-depends:
     base >= 4.6 && < 4.9,
     aeson,
-    api-builder >= 0.9,
+    api-builder >= 0.9 && < 0.10,
     bytestring,
     data-default,
     http-conduit,
diff --git a/src/Reddit/Routes/Run.hs b/src/Reddit/Routes/Run.hs
--- a/src/Reddit/Routes/Run.hs
+++ b/src/Reddit/Routes/Run.hs
@@ -4,6 +4,7 @@
 import Reddit.Types.Error
 import Reddit.Types.Reddit
 
+import Control.Applicative
 import Control.Concurrent (threadDelay)
 import Control.Concurrent.STM
 import Control.Monad (liftM, when)
@@ -16,6 +17,7 @@
 import Network.API.Builder.Routes (Route)
 import Network.HTTP.Conduit
 import Network.HTTP.Types
+import Prelude
 import qualified Network.API.Builder as API
 
 runRoute :: (MonadIO m, FromJSON a) => Route -> RedditT m a
@@ -42,11 +44,14 @@
           runRouteWithLimiting route
         Left x -> RedditT $ ExceptT $ return $ Left x
         Right x -> do
-          updateRateLimitInfo $ responseHeaders x
-          decodeFromResponse x
-
-decodeFromResponse :: (Monad m, FromJSON a) => Response ByteString -> RedditT m a
-decodeFromResponse = RedditT . ExceptT . return . fmap API.unwrapJSON . API.receive
+          case API.unwrapJSON <$> API.receive x of
+            Left (API.APIError (RateLimitError resetIn _)) -> do
+              updateFromZero resetIn
+              runRouteWithLimiting route
+            Left y -> RedditT $ ExceptT $ return $ Left y
+            Right y -> do
+              updateRateLimitInfo $ responseHeaders x
+              return y
 
 updateRateLimitInfo :: MonadIO m => ResponseHeaders -> RedditT m ()
 updateRateLimitInfo hs = do
