diff --git a/Hipmunk.cabal b/Hipmunk.cabal
--- a/Hipmunk.cabal
+++ b/Hipmunk.cabal
@@ -3,7 +3,7 @@
 Tested-With:   GHC
 Category:      Physics, Game
 Name:          Hipmunk
-Version:       5.2.0.10
+Version:       5.2.0.11
 Stability:     provisional
 License:       OtherLicense
 License-File:  LICENSE
@@ -20,6 +20,14 @@
       Please see <http://hackage.haskell.org/package/HipmunkPlayground>
       for a demonstration of this library.
       .
+      Version 5.2.0.11:
+      .
+      * Compatibility with base == 4.6.* (Thanks, Zack Corr!)
+      .
+      Version 5.2.0.10:
+      .
+      * Compatibility with base < 4.4
+      .
       New in version 5.2.0.9:
       .
       * Added Physics.Hipmunk.Constraint.setMaxBias and setMaxForce.
@@ -199,7 +207,7 @@
   if flag(small_base)
     Build-Depends: base >= 3 && < 5,
                    array >= 0.1 && < 0.5,
-                   containers >= 0.1 && < 0.5,
+                   containers >= 0.1 && < 0.6,
                    transformers >= 0.2 && < 0.4,
                    StateVar >= 1.0 && < 1.1
   else
diff --git a/Physics/Hipmunk/Space.hsc b/Physics/Hipmunk/Space.hsc
--- a/Physics/Hipmunk/Space.hsc
+++ b/Physics/Hipmunk/Space.hsc
@@ -178,7 +178,7 @@
         in withForeignPtr sp $ \sp_ptr ->
            withForeignPtr new $ \new_ptr -> do
              add sp_ptr new_ptr
-             modifyIORef' entities (M.insert key val)
+             modifyIORefStrict entities (M.insert key val)
 
 spaceRemoveHelper :: (a -> ForeignPtr b)
                   -> (SpacePtr -> Ptr b -> IO ())
@@ -187,15 +187,15 @@
     \(P sp entities _) old_c -> do
       let old  = get_ old_c
           key  = unsafeForeignPtrToPtr $ castForeignPtr old
-      modifyIORef' entities (M.delete key)
+      modifyIORefStrict entities (M.delete key)
       withForeignPtr sp $ \sp_ptr ->
         withForeignPtr old $ \old_ptr ->
           remove sp_ptr old_ptr
 
 -- | Strict version of modifyIORef (otherwise the thunks
 --   will keep referencing removed entities).
-modifyIORef' :: IORef a -> (a -> a) -> IO ()
-modifyIORef' var f = do
+modifyIORefStrict :: IORef a -> (a -> a) -> IO ()
+modifyIORefStrict var f = do
   old <- readIORef var
   let new = f old
   new `seq` writeIORef var new
