diff --git a/Data/UnixTime/Types.hsc b/Data/UnixTime/Types.hsc
--- a/Data/UnixTime/Types.hsc
+++ b/Data/UnixTime/Types.hsc
@@ -6,6 +6,7 @@
 import Data.Int
 import Foreign.C.Types
 import Foreign.Storable
+import Data.Binary
 
 #include <sys/time.h>
 
@@ -29,6 +30,12 @@
     poke ptr ut = do
             (#poke struct timeval, tv_sec)  ptr (utSeconds ut)
             (#poke struct timeval, tv_usec) ptr (utMicroSeconds ut)
+
+instance Binary UnixTime where
+        put (UnixTime (CTime sec) msec) = do
+            put sec
+            put msec
+        get = UnixTime <$> (CTime `fmap` get) <*> get
 
 -- |
 -- Format of the strptime()/strftime() style.
diff --git a/configure b/configure
--- a/configure
+++ b/configure
@@ -2666,6 +2666,7 @@
 	;;
 esac
 
+
 cat >>confdefs.h <<_ACEOF
 #define IS_LINUX $LINUX
 _ACEOF
@@ -3686,6 +3687,4 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
-
-
 
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -17,7 +17,5 @@
 	;;
 esac
 
-AC_DEFINE_UNQUOTED(IS_LINUX,$LINUX)
+AC_DEFINE_UNQUOTED(IS_LINUX,$LINUX,"Is Linux")
 AC_OUTPUT
-
-
diff --git a/unix-time.cabal b/unix-time.cabal
--- a/unix-time.cabal
+++ b/unix-time.cabal
@@ -1,5 +1,5 @@
 Name:                   unix-time
-Version:                0.2.2
+Version:                0.3.0
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
@@ -23,6 +23,7 @@
   Build-Depends:        base >= 4 && < 5
                       , bytestring
                       , old-time
+                      , binary
   C-Sources:            cbits/conv.c
 
 Test-Suite doctest
