diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.14.13
+
+* Handle compat SPECIALIZE for older GHC
+
 ## 0.14.12
 
 * Optimise copy operations and convert
diff --git a/Data/ByteArray/Methods.hs b/Data/ByteArray/Methods.hs
--- a/Data/ByteArray/Methods.hs
+++ b/Data/ByteArray/Methods.hs
@@ -54,8 +54,10 @@
 #if defined(WITH_BYTESTRING_SUPPORT) && defined(WITH_FOUNDATION_SUPPORT)
 import qualified Data.ByteString as SPE (ByteString)
 import qualified Basement.UArray as SPE (UArray)
+#if MIN_VERSION_basement(0,0,5)
 import qualified Basement.Block  as SPE (Block)
 #endif
+#endif
 
 -- | Allocate a new bytearray of specific size, and run the initializer on this memory
 alloc :: ByteArray ba => Int -> (Ptr p -> IO ()) -> IO ba
@@ -300,7 +302,9 @@
 convert bs = inlineUnsafeCreate (length bs) (copyByteArrayToPtr bs)
 #if defined(WITH_BYTESTRING_SUPPORT) && defined(WITH_FOUNDATION_SUPPORT)
 {-# SPECIALIZE convert :: SPE.ByteString -> SPE.UArray Word8 #-}
-{-# SPECIALIZE convert :: SPE.ByteString -> SPE.Block Word8 #-}
 {-# SPECIALIZE convert :: SPE.UArray Word8 -> SPE.ByteString #-}
+#if MIN_VERSION_basement(0,0,5)
+{-# SPECIALIZE convert :: SPE.ByteString -> SPE.Block Word8 #-}
 {-# SPECIALIZE convert :: SPE.Block Word8 -> SPE.ByteString #-}
+#endif
 #endif
diff --git a/memory.cabal b/memory.cabal
--- a/memory.cabal
+++ b/memory.cabal
@@ -1,5 +1,5 @@
 Name:                memory
-version:             0.14.12
+version:             0.14.13
 Synopsis:            memory and related abstraction stuff
 Description:
     Chunk of memory, polymorphic byte array management and manipulation
