diff --git a/property-list.cabal b/property-list.cabal
--- a/property-list.cabal
+++ b/property-list.cabal
@@ -1,5 +1,5 @@
 name:                   property-list
-version:                0.1.0.3
+version:                0.1.0.4
 stability:              experimental
 license:                PublicDomain
 
diff --git a/src/Data/PropertyList/Binary/Float.hs b/src/Data/PropertyList/Binary/Float.hs
--- a/src/Data/PropertyList/Binary/Float.hs
+++ b/src/Data/PropertyList/Binary/Float.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE TemplateHaskell, CPP #-}
 module Data.PropertyList.Binary.Float
     ( doubleToWord64
     , word64ToDouble
@@ -11,7 +11,9 @@
 
 import Foreign
 import GHC.Float
+#if MIN_VERSION_base(4,7,0)
 import System.IO.Unsafe (unsafePerformIO)
+#endif
 
 -- TODO: create a library or extend an existing one to include a module Data.Float.IEEE
 -- which exports types Float32, Float64, etc., with proper IEEE-safe conversions
