diff --git a/Database/HDBC/Locale.hs b/Database/HDBC/Locale.hs
new file mode 100644
--- /dev/null
+++ b/Database/HDBC/Locale.hs
@@ -0,0 +1,17 @@
+module Database.HDBC.Locale
+    (
+     defaultTimeLocale,
+     iso8601DateFormat
+    )
+
+where
+import System.Locale (defaultTimeLocale)
+
+-- | As the semantic of System.Locale.iso8601DateFormat has changed with
+--   old-locale-1.0.0.2 in a non-compatible way, we now define our own
+--   (compatible) version of it.
+iso8601DateFormat :: Maybe String -> String
+iso8601DateFormat mTimeFmt =
+    "%Y-%m-%d" ++ case mTimeFmt of
+             Nothing  -> ""
+             Just fmt -> ' ' : fmt
diff --git a/Database/HDBC/SqlValue.hs b/Database/HDBC/SqlValue.hs
--- a/Database/HDBC/SqlValue.hs
+++ b/Database/HDBC/SqlValue.hs
@@ -18,7 +18,7 @@
 import Data.Time
 import Data.Time.Clock
 import Data.Time.Clock.POSIX
-import System.Locale
+import Database.HDBC.Locale (defaultTimeLocale, iso8601DateFormat)
 import Data.Ratio
 import Control.Monad.Error
 import Data.Convertible
diff --git a/HDBC.cabal b/HDBC.cabal
--- a/HDBC.cabal
+++ b/HDBC.cabal
@@ -1,5 +1,5 @@
 Name: HDBC
-Version: 2.2.3
+Version: 2.2.4
 License: LGPL
 Maintainer: John Goerzen <jgoerzen@complete.org>
 Author: John Goerzen
@@ -48,7 +48,7 @@
 
   Exposed-Modules: Database.HDBC, Database.HDBC.Types, Database.HDBC.DriverUtils,
     Database.HDBC.ColTypes, Database.HDBC.Statement, Database.HDBC.SqlValue
-  Other-Modules: Database.HDBC.Utils
+  Other-Modules: Database.HDBC.Utils, Database.HDBC.Locale
   Extensions: ExistentialQuantification, CPP, MultiParamTypeClasses,
     FlexibleContexts, TypeSynonymInstances, TypeOperators, RankNTypes,
     FlexibleInstances
@@ -57,6 +57,22 @@
    if flag(buildtests)
       Buildable: True
       Build-Depends: HUnit, QuickCheck, testpack
+
+      if flag(splitBase)
+        Build-Depends: base>=3 && <5, old-time, time>=1.1.2.4 && <=1.1.4, bytestring, containers, old-locale
+        if flag(time_gte_113)
+          Build-Depends: time>=1.1.3
+          CPP-OPTIONS: -DTIME_GT_113
+        else
+          Build-Depends: time<1.1.3
+      else
+        Build-Depends: base<3
+      Build-Depends: mtl, convertible >= 1.0.1, utf8-string
+
+      -- Hack for cabal-install weirdness.  cabal-install forces base 3,
+      -- though it works fine for Setup.lhs manually.  Fix.
+      if impl(ghc >= 6.9)
+         build-depends: base >= 4
    else
       Buildable: False
    Main-Is: runtests.hs
diff --git a/testsrc/TestSqlValue.hs b/testsrc/TestSqlValue.hs
--- a/testsrc/TestSqlValue.hs
+++ b/testsrc/TestSqlValue.hs
@@ -14,7 +14,7 @@
 import Database.HDBC
 import Data.Time.Format
 import Data.Time.LocalTime
-import System.Locale
+import Database.HDBC.Locale (defaultTimeLocale, iso8601DateFormat)
 import Data.Maybe
 
 instance Eq ZonedTime where
