diff --git a/Control/Monad/Trans/Resource.hs b/Control/Monad/Trans/Resource.hs
--- a/Control/Monad/Trans/Resource.hs
+++ b/Control/Monad/Trans/Resource.hs
@@ -218,7 +218,7 @@
 register' istate rel = I.atomicModifyIORef istate $ \rm ->
     case rm of
         ReleaseMap key rf m ->
-            ( ReleaseMap (key + 1) rf (IntMap.insert key rel m)
+            ( ReleaseMap (key - 1) rf (IntMap.insert key rel m)
             , ReleaseKey key
             )
         ReleaseMapClosed -> throw $ InvalidAccess "register'"
@@ -291,7 +291,7 @@
 runResourceT :: MonadBaseControl IO m => ResourceT m a -> m a
 runResourceT (ResourceT r) = do
     istate <- liftBase $ I.newIORef
-        $ ReleaseMap minBound minBound IntMap.empty
+        $ ReleaseMap maxBound minBound IntMap.empty
     bracket_
         (stateAlloc istate)
         (stateCleanup istate)
diff --git a/resourcet.cabal b/resourcet.cabal
--- a/resourcet.cabal
+++ b/resourcet.cabal
@@ -1,5 +1,5 @@
 Name:                resourcet
-Version:             0.3.2
+Version:             0.3.2.1
 Synopsis:            Deterministic allocation and freeing of scarce resources.
 Description:
 	This package was originally included with the conduit package, and has since been split off. For more information, please see <http://www.yesodweb.com/book/conduits>.
