diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,12 @@
 Changes
 =======
 
+Version 0.6.2
+---------------
+
+* Add `hSupportsANSI`
+* Drop support for `base < 4`
+
 Version 0.6.1.1
 ---------------
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -66,7 +66,7 @@
     putStrLn "World!"
 ```
 
-![](images/example.png)
+![](https://raw.githubusercontent.com/feuerbach/ansi-terminal/master/example.png)
 
 Documentation
 -------------
@@ -78,3 +78,11 @@
 -------
 
 The library is originally written by [Max Bolingbroke](https://github.com/batterseapower)
+
+Maintainers
+-----------
+
+[Roman Cheplyaka](https://github.com/feuerbach) is the primary maintainer.
+
+[Oliver Charles](https://github.com/ocharles) is the backup maintainer. Please
+get in touch with him if the primary maintainer cannot be reached.
diff --git a/ansi-terminal.cabal b/ansi-terminal.cabal
--- a/ansi-terminal.cabal
+++ b/ansi-terminal.cabal
@@ -1,5 +1,5 @@
 Name:                ansi-terminal
-Version:             0.6.1.1
+Version:             0.6.2
 Cabal-Version:       >= 1.6
 Category:            User Interfaces
 Synopsis:            Simple ANSI terminal support, with Windows compatibility
@@ -22,10 +22,6 @@
   type:     git
   location: git://github.com/feuerbach/ansi-terminal.git
 
-Flag SplitBase
-        Description:    Choose the new smaller, split-up base package
-        Default:        True
-
 Flag Example
         Description:    Build the example application
         Default:        False
@@ -37,6 +33,7 @@
         
         Include-Dirs:           includes
         
+        Build-Depends:          base >= 4 && < 5
         if os(windows)
                 Build-Depends:          Win32 >= 2.0
                 Cpp-Options:            -DWINDOWS
@@ -52,11 +49,6 @@
                 Cpp-Options:            -DUNIX
                 Other-Modules:          System.Console.ANSI.Unix
         
-        if flag(splitBase)
-                Build-Depends:          base >= 3 && < 5
-        else
-                Build-Depends:          base < 3
-        
         Extensions:             CPP
                                 ForeignFunctionInterface
         
@@ -65,7 +57,7 @@
 Executable ansi-terminal-example
         Main-Is:                System/Console/ANSI/Example.hs
         
-        Cpp-Options:            -Iincludes
+        Include-Dirs:           includes
         
         if os(windows)
                 Build-Depends:          Win32 >= 2.0
@@ -80,11 +72,8 @@
                 Cpp-Options:            -DUNIX
                 Other-Modules:          System.Console.ANSI.Unix
         
-        if flag(splitBase)
-                Build-Depends:          base >= 3 && < 5
-        else
-                Build-Depends:          base < 3
         
+        Build-Depends:          base >= 4 && < 5
         Extensions:             CPP
                                 ForeignFunctionInterface
         
diff --git a/includes/Common-Include.hs b/includes/Common-Include.hs
--- a/includes/Common-Include.hs
+++ b/includes/Common-Include.hs
@@ -1,3 +1,6 @@
+import System.Environment
+import Control.Applicative
+
 hCursorUp, hCursorDown, hCursorForward, hCursorBackward :: Handle
                                                         -> Int -- ^ Number of lines or characters to move
                                                         -> IO ()
@@ -125,3 +128,16 @@
              -> String
 
 setTitle = hSetTitle stdout
+
+-- | Use heuristics to determine whether the functions defined in this
+-- package will work with a given handle.
+--
+-- The current implementation checks that the handle is a terminal, and
+-- that the @TERM@ environment variable doesn't say @dumb@ (whcih is what
+-- Emacs sets for its own terminal).
+hSupportsANSI :: Handle -> IO Bool
+-- Borrowed from an HSpec patch by Simon Hengel
+-- (https://github.com/hspec/hspec/commit/d932f03317e0e2bd08c85b23903fb8616ae642bd)
+hSupportsANSI h = (&&) <$> hIsTerminalDevice h <*> (not <$> isDumb)
+  where
+    isDumb = maybe False (== "dumb") <$> lookupEnv "TERM"
diff --git a/includes/Exports-Include.hs b/includes/Exports-Include.hs
--- a/includes/Exports-Include.hs
+++ b/includes/Exports-Include.hs
@@ -47,4 +47,7 @@
 -- * Changing the title
 setTitle,
 hSetTitle,
-setTitleCode
+setTitleCode,
+
+-- * Checking if handle supports ANSI
+hSupportsANSI
