diff --git a/Clckwrks/Media/Types.hs b/Clckwrks/Media/Types.hs
--- a/Clckwrks/Media/Types.hs
+++ b/Clckwrks/Media/Types.hs
@@ -3,12 +3,18 @@
 
 import Data.Data (Data, Typeable)
 import Data.IxSet (Indexable(..), ixSet, ixFun)
-import Data.SafeCopy (SafeCopy, base, deriveSafeCopy)
+import Data.SafeCopy (SafeCopy(..), base, contain, deriveSafeCopy)
+import qualified Data.Serialize as S
 import Data.Text     (Text)
 import Web.Routes    (PathInfo(..))
 
 newtype MediumId = MediumId { unMediumId :: Integer }
-    deriving (Eq, Ord, Read, Show, Data, Typeable, SafeCopy, PathInfo)
+    deriving (Eq, Ord, Read, Show, Data, Typeable, PathInfo)
+
+instance SafeCopy MediumId where
+    getCopy = contain $ fmap MediumId S.get
+    putCopy = contain . S.put . unMediumId
+    errorTypeName _ = "MediumId"
 
 data MediumKind
     = JPEG
diff --git a/clckwrks-plugin-media.cabal b/clckwrks-plugin-media.cabal
--- a/clckwrks-plugin-media.cabal
+++ b/clckwrks-plugin-media.cabal
@@ -1,5 +1,5 @@
 Name:                clckwrks-plugin-media
-Version:             0.6.6
+Version:             0.6.7
 Synopsis:            media plugin for clckwrks
 Homepage:            http://clckwrks.com/
 License:             BSD3
@@ -43,6 +43,7 @@
     acid-state             >= 0.12 && < 0.13,
     attoparsec             >= 0.10 && < 0.12,
     blaze-html             >= 0.5 && < 0.8,
+    cereal                 >= 0.4 && < 0.5,
     clckwrks               >= 0.21 && < 0.23,
     containers             >= 0.4 && < 0.6,
     directory              >= 1.1 && < 1.3,
