diff --git a/dotenv.cabal b/dotenv.cabal
--- a/dotenv.cabal
+++ b/dotenv.cabal
@@ -1,5 +1,5 @@
 name:                dotenv
-version:             0.1.0.1
+version:             0.1.0.2
 synopsis:            Loads environment variables from dotenv files
 
 description:
@@ -45,7 +45,8 @@
   main-is:             Main.hs
   -- other-modules:
   -- other-extensions:
-  build-depends:         base >=4.7 && <4.8
+  build-depends:         base >=4.5 && <4.8
+                       , base-compat >= 0.4
                        , optparse-applicative >=0.11 && <0.12
                        , parsec >= 3.1.0 && <= 3.2
                        , process
@@ -57,7 +58,8 @@
   exposed-modules:    Configuration.Dotenv.Parse
                     , Configuration.Dotenv
 
-  build-depends:         base >=4.7 && <4.8
+  build-depends:         base >=4.5 && <4.8
+                       , base-compat >= 0.4
                        , parsec >= 3.1.0 && <= 3.2
 
   hs-source-dirs:      src
@@ -69,7 +71,8 @@
   type: exitcode-stdio-1.0
   hs-source-dirs: spec, src
   main-is: Spec.hs
-  build-depends:       base >=4.7 && <4.8
+  build-depends:       base >=4.5 && <4.8
+                       , base-compat >= 0.4
                        , parsec >= 3.1.0 && <= 3.2
 
                        , hspec
diff --git a/src/Configuration/Dotenv.hs b/src/Configuration/Dotenv.hs
--- a/src/Configuration/Dotenv.hs
+++ b/src/Configuration/Dotenv.hs
@@ -1,6 +1,6 @@
 module Configuration.Dotenv (load, loadFile) where
 
-import System.Environment (lookupEnv, setEnv)
+import System.Environment.Compat (lookupEnv, setEnv)
 
 import Configuration.Dotenv.Parse (configParser)
 
diff --git a/src/Configuration/Dotenv/Parse.hs b/src/Configuration/Dotenv/Parse.hs
--- a/src/Configuration/Dotenv/Parse.hs
+++ b/src/Configuration/Dotenv/Parse.hs
@@ -1,22 +1,16 @@
 module Configuration.Dotenv.Parse (configParser) where
 
 import Data.Maybe (catMaybes)
-
-import Text.Parsec
-  ((<|>), many, try, lookAhead, manyTill, char, anyChar, many1)
-
 import Text.Parsec.String (Parser)
-
 import Text.ParserCombinators.Parsec.Prim (GenParser)
-
 import Text.ParserCombinators.Parsec.Char (space, newline, oneOf, noneOf)
-
 import Control.Monad (liftM2)
-
 import Text.Parsec.Combinator (eof)
-
 import Control.Applicative ((<*), (*>), (<$>))
+import Text.Parsec
+  ((<|>), many, try, lookAhead, manyTill, char, anyChar, many1)
 
+
 -- | Returns a parser for a Dotenv configuration file.
 -- Accepts key and value arguments separated by "=".
 -- Comments are allowed on lines by themselves and on
@@ -24,6 +18,7 @@
 configParser :: Parser [(String, String)]
 configParser = catMaybes <$> many lineWithArguments
 
+
 lineWithArguments :: Parser (Maybe (String, String))
 lineWithArguments =
   comment *> return Nothing
@@ -32,25 +27,19 @@
   <|> Just <$> configurationOptionWithArguments
 
 configurationOptionWithArguments :: Parser (String, String)
-configurationOptionWithArguments = do
-  _ <- many space
-
-  keyword   <- manyTill1 (noneOf "\n ") keywordArgSeparator
-
-  arguments <- argumentParser
-
-  return (keyword, arguments)
+configurationOptionWithArguments = liftM2 (,)
+  (many space *> manyTill1 (noneOf "\n ") keywordArgSeparator)
+  argumentParser
 
 argumentParser :: Parser String
-argumentParser = try quotedArgument <|> try unquotedArgument
+argumentParser = quotedArgument <|> unquotedArgument
 
 -- | Based on a commented-string parser in:
 -- http://hub.darcs.net/navilan/XMonadTasks/raw/Data/Config/Lexer.hs
 quotedWith :: Char -> Parser String
 quotedWith c =
-  char c
-  *> many chr
-  <* char c
+  char c *> many chr <* char c
+
   where chr = esc <|> noneOf [c]
         esc = escape *> char c
 
@@ -59,14 +48,13 @@
 
 unquotedArgument :: Parser String
 unquotedArgument =
-  many (noneOf " \t\n#") <* (try comment <|> try verticalSpace *> return () <|>
-                             lookAhead (try endOfLineOrInput))
+  many (noneOf " \t\n#") <* (comment <|> try verticalSpace *> return ()
+                             <|> lookAhead (try endOfLineOrInput))
 
 comment :: Parser ()
-comment =
-  try (many verticalSpace *> char '#')
-  *> manyTill anyChar endOfLineOrInput
-  *> return ()
+comment = try (many verticalSpace *> char '#')
+          *> manyTill anyChar endOfLineOrInput
+          *> return ()
 
 endOfLineOrInput :: Parser ()
 endOfLineOrInput = newline *> return () <|> eof
