diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/iso8601-time.cabal b/iso8601-time.cabal
--- a/iso8601-time.cabal
+++ b/iso8601-time.cabal
@@ -1,5 +1,5 @@
 name:          iso8601-time
-version:       0.1.3
+version:       0.1.4
 license:       MIT
 copyright:     2013 Niklas Hambüchen <mail@nh2.me>
 author:        Niklas Hambüchen <mail@nh2.me>
diff --git a/src/Data/Time/ISO8601.hs b/src/Data/Time/ISO8601.hs
--- a/src/Data/Time/ISO8601.hs
+++ b/src/Data/Time/ISO8601.hs
@@ -11,10 +11,11 @@
 
 
 import Data.Time.Clock (UTCTime)
-import Data.Time.Format (formatTime, parseTime)
+import Data.Time.Format (formatTime)
 #if MIN_VERSION_time(1,5,0)
-import Data.Time.Format (defaultTimeLocale)
+import Data.Time.Format (defaultTimeLocale, parseTimeM)
 #else
+import Data.Time.Format (parseTime)
 import System.Locale (defaultTimeLocale)
 #endif
 import Control.Applicative ((<|>))
@@ -78,6 +79,14 @@
 
 
 -- | Parses an ISO 8601 string.
+--
+-- Leading and trailing whitespace is accepted. See `parseTimeM` from the
+-- `time` package for more details.
 parseISO8601 :: String -> Maybe UTCTime
+#if MIN_VERSION_time(1,5,0)
+parseISO8601 t = parseTimeM True defaultTimeLocale "%FT%T%QZ" t <|>
+                 parseTimeM True defaultTimeLocale "%FT%T%Q%z" t
+#else
 parseISO8601 t = parseTime defaultTimeLocale "%FT%T%QZ" t <|>
                  parseTime defaultTimeLocale "%FT%T%Q%z" t
+#endif
