diff --git a/VERSION b/VERSION
--- a/VERSION
+++ b/VERSION
@@ -1,3 +1,5 @@
+1.3.1 (2012-02-29):
+    - Corrected the CPP macros now that stm-2.3 is released.
 1.3.0 (2012-02-25):
     - Added Control.Concurrent.STM.TMVar.Compat
 1.2.0.3 (2012-02-12):
diff --git a/src/Control/Concurrent/STM/TChan/Compat.hs b/src/Control/Concurrent/STM/TChan/Compat.hs
--- a/src/Control/Concurrent/STM/TChan/Compat.hs
+++ b/src/Control/Concurrent/STM/TChan/Compat.hs
@@ -1,7 +1,7 @@
 {-# OPTIONS_GHC -Wall -fwarn-tabs #-}
 {-# LANGUAGE CPP #-}
 ----------------------------------------------------------------
---                                                    2011.04.03
+--                                                    2012.02.29
 -- |
 -- Module      :  Control.Concurrent.STM.TChan.Compat
 -- Copyright   :  Copyright (c) 2011--2012 wren ng thornton
@@ -12,7 +12,7 @@
 --
 -- Compatibility layer for older versions of the @stm@ library.
 -- Namely, we define 'tryReadTChan', 'peekTChan', and 'tryPeekTChan'
--- which @stm-X.X.X@ lacks. These implementations are less efficient
+-- which @stm<2.3.0@ lacks. These implementations are less efficient
 -- than the package versions due to the 'TChan' type being abstract.
 -- However, this module uses Cabal-style CPP macros in order to use
 -- the package versions when available.
@@ -39,10 +39,7 @@
 
 import Control.Concurrent.STM.TChan -- N.B., GHC only
 
--- BUG: What version will these really be added?
--- <http://hackage.haskell.org/trac/ghc/ticket/5104>
--- <http://www.haskell.org/pipermail/cvs-libraries/2011-April/012914.html>
-#if ! (MIN_VERSION_stm(9,0,0))
+#if ! (MIN_VERSION_stm(2,3,0))
 import Control.Applicative ((<$>))
 import Control.Monad.STM   (STM)
 
@@ -54,7 +51,7 @@
 tryReadTChan chan = do
     b <- isEmptyTChan chan
     if b then return Nothing else Just <$> readTChan chan
-{- -- Optimized implementation for when patching @stm@
+{- -- The optimized implementation in stm-2.3.0
 tryReadTChan (TChan read _write) = do
     hd <- readTVar =<< readTVar read
     case hd of
@@ -72,7 +69,7 @@
     x <- readTChan chan
     unGetTChan chan x
     return x
-{- -- Optimized implementation for when patching @stm@
+{- -- The optimized implementation in stm-2.3.0
 peekTChan (TChan read _write) = do
     hd <- readTVar =<< readTVar read
     case hd of
@@ -87,7 +84,7 @@
 tryPeekTChan chan = do
     b <- isEmptyTChan chan
     if b then return Nothing else Just <$> peekTChan chan
-{- -- Optimized implementation for when patching @stm@
+{- -- The optimized implementation in stm-2.3.0
 tryPeekTChan (TChan read _write) = do
     hd <- readTVar =<< readTVar read
     case hd of
diff --git a/src/Control/Concurrent/STM/TMVar/Compat.hs b/src/Control/Concurrent/STM/TMVar/Compat.hs
--- a/src/Control/Concurrent/STM/TMVar/Compat.hs
+++ b/src/Control/Concurrent/STM/TMVar/Compat.hs
@@ -1,7 +1,7 @@
 {-# OPTIONS_GHC -Wall -fwarn-tabs #-}
 {-# LANGUAGE CPP #-}
 ----------------------------------------------------------------
---                                                    2012.02.25
+--                                                    2012.02.29
 -- |
 -- Module      :  Control.Concurrent.STM.TMVar.Compat
 -- Copyright   :  Copyright (c) 2011--2012 wren ng thornton
@@ -11,7 +11,7 @@
 -- Portability :  non-portable (STM, CPP)
 --
 -- Compatibility layer for older versions of the @stm@ library.
--- Namely, we define 'tryReadTMVar' which @stm-X.X.X@ lacks. This
+-- Namely, we define 'tryReadTMVar' which @stm<2.3.0@ lacks. This
 -- module uses Cabal-style CPP macros in order to use the package
 -- versions when available. This isn't actually used by the @stm-chans@
 -- package, but we provide it anyways since we provide compatibility
@@ -44,21 +44,19 @@
 
 import Control.Concurrent.STM.TMVar
 
--- BUG: What version will these really be added?
--- <http://hackage.haskell.org/trac/ghc/ticket/5104>
--- <http://www.haskell.org/pipermail/cvs-libraries/2011-April/012914.html>
-#if ! (MIN_VERSION_stm(9,0,0))
+#if ! (MIN_VERSION_stm(2,3,0))
 import Control.Concurrent.STM (STM)
 ----------------------------------------------------------------
 
--- | A version of 'readTMVar' which does not retry. Instead it returns @Nothing@ if no value is available.
+-- | A version of 'readTMVar' which does not retry. Instead it
+-- returns @Nothing@ if no value is available.
 tryReadTMVar :: TMVar a -> STM (Maybe a)
 tryReadTMVar var = do
     m <- tryTakeTMVar var
     case m of
         Nothing -> return Nothing
         Just x  -> putTMVar var x >> return (Just x)
-{- -- The optimized implementation in the patch to @stm@
+{- -- The optimized implementation in stm-2.3.0
 tryReadTMVar (TMVar t) = readTVar t
 {-# INLINE tryReadTMVar #-}
 -}
diff --git a/src/Control/Concurrent/STM/TVar/Compat.hs b/src/Control/Concurrent/STM/TVar/Compat.hs
--- a/src/Control/Concurrent/STM/TVar/Compat.hs
+++ b/src/Control/Concurrent/STM/TVar/Compat.hs
@@ -1,7 +1,7 @@
 {-# OPTIONS_GHC -Wall -fwarn-tabs #-}
 {-# LANGUAGE CPP #-}
 ----------------------------------------------------------------
---                                                    2011.04.03
+--                                                    2012.02.29
 -- |
 -- Module      :  Control.Concurrent.STM.TVar.Compat
 -- Copyright   :  Copyright (c) 2011--2012 wren ng thornton
@@ -11,8 +11,8 @@
 -- Portability :  non-portable (STM, CPP)
 --
 -- Compatibility layer for older versions of the @stm@ library.
--- Namely, we define 'readTVarIO' which @stm-2.1.1@ lacks; and we
--- define 'modifyTVar', 'modifyTVar'', and 'swapTVar' which @stm-X.X.X@
+-- Namely, we define 'readTVarIO' which @stm<2.1.2@ lacks; and we
+-- define 'modifyTVar', 'modifyTVar'', and 'swapTVar' which @stm<2.3.0@
 -- lacks. This module uses Cabal-style CPP macros in order to use
 -- the package versions when available.
 ----------------------------------------------------------------
@@ -41,10 +41,7 @@
 import Control.Concurrent.STM (atomically)
 #endif
 
--- BUG: What version will these really be added?
--- <http://hackage.haskell.org/trac/ghc/ticket/5104>
--- <http://www.haskell.org/pipermail/cvs-libraries/2011-April/012914.html>
-#if ! (MIN_VERSION_stm(9,0,0))
+#if ! (MIN_VERSION_stm(2,3,0))
 import Control.Concurrent.STM (STM)
 #endif
 ----------------------------------------------------------------
@@ -63,8 +60,7 @@
 #endif
 
 
--- BUG: What version will these really be added?
-#if ! (MIN_VERSION_stm(9,0,0))
+#if ! (MIN_VERSION_stm(2,3,0))
 
 -- Like 'modifyIORef' but for @TVar@.
 -- | Mutate the contents of a @TVar@. /N.B./, this version is
diff --git a/stm-chans.cabal b/stm-chans.cabal
--- a/stm-chans.cabal
+++ b/stm-chans.cabal
@@ -9,7 +9,7 @@
 Build-Type:     Custom
 
 Name:           stm-chans
-Version:        1.3.0
+Version:        1.3.1
 Stability:      provisional
 Homepage:       http://code.haskell.org/~wren/
 Author:         wren ng thornton, Thomas DuBuisson
@@ -35,7 +35,7 @@
     -- Not sure what the real minbounds are for base and stm...
     --
     -- N.B., stm >= 2.1.2 is required for fast readTVarIO. And
-    -- stm >= ?.?.? is required for fast tryReadTChan, peekTChan,
+    -- stm >= 2.3.0 is required for fast tryReadTChan, peekTChan,
     -- tryPeekTChan, tryReadTMVar, modifyTVar, modifyTVar', swapTVar.
     Build-Depends: base >= 4.1 && < 5
                  , stm  >= 2.1.1
