diff --git a/Data/CAS.hs b/Data/CAS.hs
--- a/Data/CAS.hs
+++ b/Data/CAS.hs
@@ -1,15 +1,26 @@
-{-# LANGUAGE MagicHash, UnboxedTuples, BangPatterns, MagicHash,
+{-# LANGUAGE CPP, MagicHash, UnboxedTuples, BangPatterns, MagicHash,
     TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses #-}
 
 -- | Atomic compare and swap for IORefs and STRefs.
 module Data.CAS 
- ( casSTRef, casIORef, ptrEq,
+ ( 
+  -- Not currently provided by Fake.hs:
+  -- casSTRef, 
+   casIORef, ptrEq,
    atomicModifyIORefCAS, atomicModifyIORefCAS_,
 
    -- * Generic interface: for interoperation with `Fake` and `Foreign` alternative libraries.
    CASRef)
 where
 
+#if __GLASGOW_HASKELL__ <= 702  /* Fix to casMutVar introduced 2011.12.09 */
+
+#warning "casMutVar is not included or is bugged in your GHC, falling back to Fake version."
+
+import Data.CAS.Internal.Fake
+
+#else
+
 import Data.CAS.Internal.Class
 import GHC.IO
 import GHC.IORef
@@ -61,7 +72,7 @@
 -- | A drop-in replacement for `atomicModifyIORefCAS` that
 --   optimistically attempts to compute the new value and CAS it into
 --   place without introducing new thunks or locking anything.  Note
---   that this is STRICTer than its standard counterpart and will only
+--   that this is more STRICT than its standard counterpart and will only
 --   place evaluated (WHNF) values in the IORef.
 atomicModifyIORefCAS :: IORef a -> (a -> (a,b)) -> IO b
 atomicModifyIORefCAS ref fn = do
@@ -97,3 +108,5 @@
       else loop val (tries-1)
    atomicModifyIORef_ ref fn = atomicModifyIORef ref (\ x -> (fn x, ()))
 -- </duplicated code>
+
+#endif
diff --git a/IORefCAS.cabal b/IORefCAS.cabal
--- a/IORefCAS.cabal
+++ b/IORefCAS.cabal
@@ -1,5 +1,5 @@
 Name:                IORefCAS
-Version:             0.1.0.1
+Version:             0.2
 License:             BSD3
 License-file:        LICENSE
 Author:              Adam C. Foltzer, Ryan Newton
@@ -13,6 +13,7 @@
 -- 0.0.1.1 -- minor bump to include README
 -- 0.0.1.2 -- Egad, super minor update.
 -- 0.1.0.1 -- Include ptrEq in Data.CAS
+-- 0.2     -- Bumped for #if policy to test for GHC >7.2.  Removed casSTRef from the API for now.
 
 Synopsis: Atomic compare and swap for IORefs and STRefs.
 
@@ -40,6 +41,10 @@
                      Data.CAS.Internal.Class,
                      Data.CAS.Internal.Fake,
                      Data.CAS.Internal.Foreign
+  -- I have observed problems on both Mac and Linux with 7.0.x.  [2011.12.23]
+  -- Thus for now we require GHC 7.2 or greater (base 4.4 or greater).
+  -- Namely Test.hs observes CAS failing half the time even with only ONE thread.
+  -- This is probably a tricky pointer-equality related problem.
   build-depends:     base >= 4.4.0.0 && < 5,
                      ghc-prim, bits-atomic
 
