diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.9
+
+* memConstEqual was comparing length times the first byte instead of comparing all the bytes one to one
+
 ## 0.8
 
 * Add Base64 variants (Luke Taylor)
diff --git a/Data/Memory/PtrMethods.hs b/Data/Memory/PtrMethods.hs
--- a/Data/Memory/PtrMethods.hs
+++ b/Data/Memory/PtrMethods.hs
@@ -95,7 +95,7 @@
     loop i !ret
         | i == n    = return ret
         | otherwise = do
-            e <- (==) <$> peek p1 <*> peek p2
+            e <- (==) <$> peekByteOff p1 i <*> (peekByteOff p2 i :: IO Word8)
             loop (i+1) (ret &&! e)
 
     -- Bool == Bool
diff --git a/memory.cabal b/memory.cabal
--- a/memory.cabal
+++ b/memory.cabal
@@ -1,5 +1,5 @@
 Name:                memory
-Version:             0.8
+Version:             0.9
 Synopsis:            memory and related abstraction stuff
 Description:
     Chunk of memory, polymorphic byte array management and manipulation
