diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,12 @@
+## 0.7
+
+* Fix fixed sized scrubber written too hastily, that would zero out memory, as the index
+  was written through byte size, whereas the primitive would consider it as WordX type index.
+  it would helps if Ghc.Prim had better documentation.
+
 ## 0.6
 
-* fix compilation on architecture where endianness is not a compile time define related
+* Fix compilation on architecture where endianness is not a compile time define related
   to their cabal arch().
 
 ## 0.5
diff --git a/Data/Memory/Internal/Scrubber.hs b/Data/Memory/Internal/Scrubber.hs
--- a/Data/Memory/Internal/Scrubber.hs
+++ b/Data/Memory/Internal/Scrubber.hs
@@ -30,35 +30,35 @@
 #if WORD_SIZE_IN_BITS == 64
         scrub8 a = IO $ \s -> (# writeWord64OffAddr# a 0# 0## s, () #)
         scrub16 a = IO $ \s1 ->
-            let !s2 = writeWord64OffAddr# a  0# 0## s1
-                !s3 = writeWord64OffAddr# a  8# 0## s2
+            let !s2 = writeWord64OffAddr# a 0# 0## s1
+                !s3 = writeWord64OffAddr# a 1# 0## s2
              in (# s3, () #)
         scrub32 a = IO $ \s1 ->
-            let !s2 = writeWord64OffAddr# a  0# 0## s1
-                !s3 = writeWord64OffAddr# a  8# 0## s2
-                !s4 = writeWord64OffAddr# a 16# 0## s3
-                !s5 = writeWord64OffAddr# a 24# 0## s4
+            let !s2 = writeWord64OffAddr# a 0# 0## s1
+                !s3 = writeWord64OffAddr# a 1# 0## s2
+                !s4 = writeWord64OffAddr# a 2# 0## s3
+                !s5 = writeWord64OffAddr# a 3# 0## s4
              in (# s5, () #)
 #else
         scrub8 a = IO $ \s1 ->
-            let !s2 = writeWord32OffAddr# a  0# 0## s1
-                !s3 = writeWord32OffAddr# a  4# 0## s2
+            let !s2 = writeWord32OffAddr# a 0# 0## s1
+                !s3 = writeWord32OffAddr# a 1# 0## s2
              in (# s3, () #)
         scrub16 a = IO $ \s1 ->
-            let !s2 = writeWord32OffAddr# a  0# 0## s1
-                !s3 = writeWord32OffAddr# a  4# 0## s2
-                !s4 = writeWord32OffAddr# a  8# 0## s3
-                !s5 = writeWord32OffAddr# a 12# 0## s4
+            let !s2 = writeWord32OffAddr# a 0# 0## s1
+                !s3 = writeWord32OffAddr# a 1# 0## s2
+                !s4 = writeWord32OffAddr# a 2# 0## s3
+                !s5 = writeWord32OffAddr# a 3# 0## s4
              in (# s5, () #)
         scrub32 a = IO $ \s1 ->
-            let !s2 = writeWord32OffAddr# a  0# 0## s1
-                !s3 = writeWord32OffAddr# a  4# 0## s2
-                !s4 = writeWord32OffAddr# a  8# 0## s3
-                !s5 = writeWord32OffAddr# a 12# 0## s4
-                !s6 = writeWord32OffAddr# a 16# 0## s5
-                !s7 = writeWord32OffAddr# a 20# 0## s6
-                !s8 = writeWord32OffAddr# a 24# 0## s7
-                !s9 = writeWord32OffAddr# a 28# 0## s8
+            let !s2 = writeWord32OffAddr# a 0# 0## s1
+                !s3 = writeWord32OffAddr# a 1# 0## s2
+                !s4 = writeWord32OffAddr# a 2# 0## s3
+                !s5 = writeWord32OffAddr# a 3# 0## s4
+                !s6 = writeWord32OffAddr# a 4# 0## s5
+                !s7 = writeWord32OffAddr# a 5# 0## s6
+                !s8 = writeWord32OffAddr# a 6# 0## s7
+                !s9 = writeWord32OffAddr# a 7# 0## s8
              in (# s9, () #)
 #endif
 
diff --git a/memory.cabal b/memory.cabal
--- a/memory.cabal
+++ b/memory.cabal
@@ -1,5 +1,5 @@
 Name:                memory
-Version:             0.6
+Version:             0.7
 Synopsis:            memory and related abtraction stuff
 Description:
     Chunk of memory, polymorphic byte array management and manipulation
diff --git a/tests/Tests.hs b/tests/Tests.hs
--- a/tests/Tests.hs
+++ b/tests/Tests.hs
@@ -122,7 +122,7 @@
     ]
 
 main = defaultMain $ testGroup "memory"
-    [ localOption (QuickCheckTests 500) $ testGroupBackends "basic" basicProperties
+    [ localOption (QuickCheckTests 5000) $ testGroupBackends "basic" basicProperties
     , testGroupBackends "encoding" encodingTests
     , testGroupBackends "parsing" parsingTests
     , testGroupBackends "hashing" $ \witnessID ->
@@ -133,7 +133,7 @@
     basicProperties witnessID =
         [ testProperty "unpack . pack == id" $ \(Words8 l) -> l == (B.unpack . witnessID . B.pack $ l)
         , testProperty "self-eq" $ \(Words8 l) -> let b = witnessID . B.pack $ l in b == b
-        , testProperty "empty-eq" $ \(Words8 l) ->
+        , testProperty "add-empty-eq" $ \(Words8 l) ->
             let b = witnessID $ B.pack l
              in B.append b B.empty == b
         , testProperty "zero" $ \(Positive n) ->
