diff --git a/library/PrimitiveExtras/PrimArray.hs b/library/PrimitiveExtras/PrimArray.hs
--- a/library/PrimitiveExtras/PrimArray.hs
+++ b/library/PrimitiveExtras/PrimArray.hs
@@ -114,7 +114,7 @@
 cerealPutAsInMemory int primArrayValue@(PrimArray ba) =
   size <> elements
   where
-    size = int (sizeofPrimArray primArrayValue)
+    size = int (sizeofByteArray (ByteArray ba))
     elements = Cereal.putShortByteString (ShortByteString.SBS ba)
 
 {-|
diff --git a/primitive-extras.cabal b/primitive-extras.cabal
--- a/primitive-extras.cabal
+++ b/primitive-extras.cabal
@@ -1,7 +1,7 @@
 name:
   primitive-extras
 version:
-  0.6.4
+  0.6.4.1
 category:
   Primitive
 synopsis:
@@ -11,9 +11,9 @@
 bug-reports:
   https://github.com/metrix-ai/primitive-extras/issues
 author:
-  Metrix Ninjas <ninjas@metrix.ai>
+  Nikita Volkov <nikita.y.volkov@mail.ru>
 maintainer:
-  Metrix Ninjas <ninjas@metrix.ai>
+  Metrix.AI Tech Team <tech@metrix.ai>
 copyright:
   (c) 2018, Metrix.AI
 license:
@@ -77,8 +77,10 @@
   default-language:
     Haskell2010
   build-depends:
+    cereal,
     deferred-folds,
     focus,
+    primitive,
     primitive-extras,
     QuickCheck >=2.8.1 && <3,
     quickcheck-instances >=0.3.11 && <0.4,
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -14,6 +14,8 @@
 import qualified Main.Gens as Gen
 import qualified PrimitiveExtras.SparseSmallArray as SparseSmallArray
 import qualified PrimitiveExtras.SmallArray as SmallArray
+import qualified PrimitiveExtras.PrimArray as PrimArray
+import qualified Data.Serialize as Serialize
 
 
 main =
@@ -86,6 +88,14 @@
       testTransactionProperty "lookup" Gen.lookupTransaction
       ,
       testTransactionProperty "composite" Gen.transaction
+    ]
+    ,
+    testGroup "PrimArray" $
+    [
+      testProperty "Serializes well with as in memory" $ forAll (Gen.primArray Gen.element) $ \ primArray ->
+      Right primArray ===
+      Serialize.runGet (PrimArray.cerealGetAsInMemory Serialize.get)
+          (Serialize.runPut ((PrimArray.cerealPutAsInMemory Serialize.put) primArray))
     ]
   ]
 
diff --git a/test/Main/Gens.hs b/test/Main/Gens.hs
--- a/test/Main/Gens.hs
+++ b/test/Main/Gens.hs
@@ -4,6 +4,7 @@
 import Test.QuickCheck.Gen
 import Focus (Focus(..))
 import Main.Transaction (Transaction)
+import Data.Primitive
 import qualified Main.Transaction as Transaction
 import qualified PrimitiveExtras.SparseSmallArray as SparseSmallArray
 
@@ -54,3 +55,8 @@
 sparseSmallArray :: Gen (SparseSmallArray.SparseSmallArray Int)
 sparseSmallArray =
   SparseSmallArray.maybeList <$> maybeList
+
+primArray :: Prim a => Gen a -> Gen (PrimArray a)
+primArray aGen = do
+  list <- listOf aGen
+  return (primArrayFromList list)
