diff --git a/NEWS b/NEWS
new file mode 100644
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,138 @@
+0.6.0.2
+
+(Released on: Sat Jan 22 21:45:47 UTC 2011)
+
+* Support tagged-0.2
+
+
+0.6.0.1
+
+(Released on: Thu Dec 16 22:18:45 UTC 2010)
+
+* Support ghc-7
+
+
+0.6
+
+(Released on: Thu Oct 21 21:17:54 UTC 2010)
+
+* Tested with GHC-7 and base-4.3
+* Added hGetBufSome (only when configured with base-4.3)
+* Removed Ord instance it gives type errors in GHC-7
+
+
+0.5
+
+(Released on: Wed Sep 1 20:11:13 UTC 2010)
+
+* Add private super classes to ReadModes and WriteModes
+  This prevents users from accidentally defining for example:
+  'instance ReadModes WriteMode'
+  which would defeat the safety guarantees of this package.
+
+
+0.4.1
+
+(Released on: Sat Aug 14 09:20:51 UTC 2010)
+
+* Added mkIOMode overloaded IOMode constructor
+  And added convenience functions:
+  withFile', openFile', withBinaryFile' and openBinaryFile'
+  that open files without explicitly specifying the IOMode.
+  Instead the IOMode is inferred from the type of the resulting Handle
+
+
+0.4.0.1
+
+(Released on: Thu Jun 17 08:05:30 UTC 2010)
+
+* Support tagged-0.1.*
+
+
+0.4
+
+(Released on: Wed Jun 16 09:11:43 UTC 2010)
+
+* Added System.IO.ExplicitIOModes.Unsafe
+
+* Moved the ByteString operations to their own package: explicit-iomodes-bytestring
+
+
+0.3
+
+(Released on: Sun May 2 20:27:29 UTC 2010)
+
+* Updated dependency: base-unicode-symbols >= 0.1.1 && < 0.3
+
+* Renamed the IOMode types
+  R  -> ReadMode
+  W  -> WriteMode
+  A  -> AppendMode
+  RW -> ReadWriteMode
+
+
+0.2
+
+(Released on: Sat Jan 23 14:24:54 UTC 2010)
+
+* Added ByteString support
+
+* Don't export 'regularHandle' anymore
+
+
+
+0.1.5
+
+(Released on: Wed Jan 6 21:39:21 UTC 2010)
+
+* Exported: regularIOMode ∷ IOMode ioMode → System.IO.IOMode
+
+* Added documentation
+
+
+0.1.4
+
+(Released on: Tue Jan 5 23:44:26 UTC 2010)
+
+* Exported the ReadModes and WriteModes classes
+
+* Exported the CheckMode class (but not its method)
+
+
+0.1.3
+
+(Released on: Mon Dec 28 14:20:32 UTC 2009)
+
+* Added new base-4.2 functions:
+  - openTempFileWithDefaultPermissions
+  - openBinaryTempFileWithDefaultPermissions
+  - hSetEncoding
+  - hGetEncoding
+  - hSetNewlineMode
+
+
+0.1.2
+
+(Released on: Wed Dec 23 13:58:42 UTC 2009)
+
+* Exported forgotten 'isEOF'
+
+* Tested with base-4.2
+
+* Internal changes: explicit imports && Unicode syntax
+
+
+0.1.1
+
+(Released on: Tue Dec 15 09:58:32 UTC 2009)
+
+* Added function: regularHandle ∷ Handle → System.IO.Handle
+
+* Documentation fix
+
+
+0.1
+
+(Released on: Mon Dec 14 16:12:30 UTC 2009)
+
+* Initial release
diff --git a/README.markdown b/README.markdown
new file mode 100644
--- /dev/null
+++ b/README.markdown
@@ -0,0 +1,11 @@
+The module `System.IO.ExplicitIOModes` exports a `Handle` to a file
+which is parameterized with the IOMode the handle is in. All
+operations on handles explicitly specify the needed IOMode. This way
+it is impossible to read from a write-only handle or write to a
+read-only handle for example.
+
+See the [explicit-iomodes-bytestring] and [explicit-iomodes-text]
+packages for `ByteString` / `Text` operations.
+
+[explicit-iomodes-bytestring]: http://hackage.haskell.org/package/explicit-iomodes-bytestring
+[explicit-iomodes-text]: http://hackage.haskell.org/package/explicit-iomodes-text
diff --git a/System/IO/ExplicitIOModes.hs b/System/IO/ExplicitIOModes.hs
--- a/System/IO/ExplicitIOModes.hs
+++ b/System/IO/ExplicitIOModes.hs
@@ -213,6 +213,9 @@
     , SIO.utf16, SIO.utf16le, SIO.utf16be
     , SIO.utf32, SIO.utf32le, SIO.utf32be
     , SIO.localeEncoding
+#if MIN_VERSION_base(4,4,0)
+    , SIO.char8
+#endif
     , SIO.mkTextEncoding
 
     -- * Newline conversion
@@ -240,9 +243,15 @@
 import Data.Bool           ( Bool(False, True) )
 import Data.Maybe          ( Maybe(Nothing, Just) )
 import Data.Int            ( Int )
-import Data.Char           ( Char, String )
+import Data.Char           ( Char )
 import Text.Show           ( Show, show )
 import System.IO           ( IO, FilePath )
+
+#if MIN_VERSION_base(4,4,0)
+import Data.String         ( String )
+#else
+import Data.Char           ( String )
+#endif
 
 #if __GLASGOW_HASKELL__ < 700
 import Control.Monad       ( (>>=), fail )
diff --git a/explicit-iomodes.cabal b/explicit-iomodes.cabal
--- a/explicit-iomodes.cabal
+++ b/explicit-iomodes.cabal
@@ -1,5 +1,5 @@
 name:          explicit-iomodes
-version:       0.6.0.2
+version:       0.6.0.3
 cabal-version: >=1.6
 build-type:    Simple
 license:       BSD3
@@ -7,6 +7,8 @@
 copyright:     2009-2010 Bas van Dijk
 author:        Bas van Dijk
 maintainer:    Bas van Dijk <v.dijk.bas@gmail.com>
+homepage:      https://github.com/basvandijk/explicit-iomodes/
+bug-reports:   https://github.com/basvandijk/explicit-iomodes/issues
 stability:     experimental
 category:      System
 synopsis:      File handles with explicit IOModes
@@ -20,14 +22,16 @@
 	       See the @explicit-iomodes-bytestring/text@ package for
 	       @ByteString/Text@ operations.
 
+extra-source-files: README.markdown, NEWS
+
 source-repository head
-  Type:     darcs
-  Location: http://code.haskell.org/~basvandijk/code/explicit-iomodes
+  Type:     git
+  Location: git://github.com/basvandijk/explicit-iomodes.git
 
 Library
   GHC-Options: -Wall
 
-  build-depends: base                 >= 4     && < 4.4
+  build-depends: base                 >= 4     && < 4.5
                , base-unicode-symbols >= 0.1.1 && < 0.3
                , tagged               >= 0.0   && < 0.3
   exposed-modules: System.IO.ExplicitIOModes
