diff --git a/Data/UnixTime/Diff.hs b/Data/UnixTime/Diff.hs
--- a/Data/UnixTime/Diff.hs
+++ b/Data/UnixTime/Diff.hs
@@ -23,18 +23,25 @@
 calcU sec usec = uncurry UnixTime . adjust sec $ usec
 
 -- | Arithmetic operations where (1::UnixDiffTime) means 1 second.
+--
+-- >>> (3 :: UnixDiffTime) + 2
+-- UnixDiffTime {udtSeconds = 5, udtMicroSeconds = 0}
+-- >>> (2 :: UnixDiffTime) - 5
+-- UnixDiffTime {udtSeconds = -3, udtMicroSeconds = 0}
+-- >>> (3 :: UnixDiffTime) * 2
+-- UnixDiffTime {udtSeconds = 6, udtMicroSeconds = 0}
 
 instance Num UnixDiffTime where
-	UnixDiffTime s1 u1 + UnixDiffTime s2 u2 = calc (s1+s2) (u1+u2)
-	UnixDiffTime s1 u1 - UnixDiffTime s2 u2 = calc (s1-s2) (u1-u2)
-	UnixDiffTime s1 u1 * UnixDiffTime s2 u2 = calc' (s1*s2) (u1*u2)
-	negate (UnixDiffTime s u) = UnixDiffTime (-s) (-u)
-	abs (UnixDiffTime s u) = UnixDiffTime (abs s) (abs u)
-	signum (UnixDiffTime s u)
+    UnixDiffTime s1 u1 + UnixDiffTime s2 u2 = calc (s1+s2) (u1+u2)
+    UnixDiffTime s1 u1 - UnixDiffTime s2 u2 = calc (s1-s2) (u1-u2)
+    UnixDiffTime s1 u1 * UnixDiffTime s2 u2 = calc' (s1*s2) (u1*u2)
+    negate (UnixDiffTime s u) = UnixDiffTime (-s) (-u)
+    abs (UnixDiffTime s u) = UnixDiffTime (abs s) (abs u)
+    signum (UnixDiffTime s u)
          | s == 0 && u == 0 = 0
          | s > 0            = 1
          | otherwise        = -1
-	fromInteger i = UnixDiffTime (fromInteger i) 0
+    fromInteger i = UnixDiffTime (fromInteger i) 0
 
 {-# RULES "Integral->UnixDiffTime" fromIntegral = secondsToUnixDiffTime #-}
 
diff --git a/Data/UnixTime/Types.hsc b/Data/UnixTime/Types.hsc
--- a/Data/UnixTime/Types.hsc
+++ b/Data/UnixTime/Types.hsc
@@ -58,13 +58,6 @@
 -- |
 -- Data structure for UnixTime diff.
 --
--- >>> (3 :: UnixDiffTime) + 2
--- UnixDiffTime {udtSeconds = 5, udtMicroSeconds = 0}
--- >>> (2 :: UnixDiffTime) - 5
--- UnixDiffTime {udtSeconds = -3, udtMicroSeconds = 0}
--- >>> (3 :: UnixDiffTime) * 2
--- UnixDiffTime {udtSeconds = 6, udtMicroSeconds = 0}
---
 -- It is up to the user to ensure that @'udtMicroSeconds' < 1000000@.
 -- Helpers such as 'Data.UnixTime.microSecondsToUnixDiffTime' can help
 -- you to create valid values. For example, it's a mistake to use
diff --git a/test/UnixTimeSpec.hs b/test/UnixTimeSpec.hs
--- a/test/UnixTimeSpec.hs
+++ b/test/UnixTimeSpec.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE OverloadedStrings, FlexibleInstances #-}
+{-# LANGUAGE OverloadedStrings, FlexibleInstances, CPP #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 
 module UnixTimeSpec (main, spec) where
@@ -11,10 +11,13 @@
 import Foreign.Ptr (Ptr)
 import Foreign.Marshal.Alloc (alloca)
 import Foreign.Storable (peek, poke)
-import System.Locale (defaultTimeLocale)
 import Test.Hspec
 import Test.Hspec.QuickCheck (prop)
 import Test.QuickCheck
+
+#if !MIN_VERSION_time(1,5,0)
+import System.Locale (defaultTimeLocale)
+#endif
 
 main :: IO ()
 main = hspec spec
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.3.4
+Version:                0.3.5
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
