diff --git a/GHC/Handle.hs b/GHC/Handle.hs
--- a/GHC/Handle.hs
+++ b/GHC/Handle.hs
@@ -1,2 +1,52 @@
-module GHC.Handle (module X___) where
-import "base" GHC.Handle as X___
+{-# LANGUAGE ForeignFunctionInterface #-}
+module GHC.Handle (
+  withHandle, withHandle', withHandle_,
+  wantWritableHandle, wantReadableHandle, wantSeekableHandle,
+
+  --newEmptyBuffer, allocateBuffer, readCharFromBuffer, writeCharIntoBuffer,
+  --flushWriteBufferOnly, 
+  flushWriteBuffer, --flushReadBuffer,
+  --fillReadBuffer, fillReadBufferWithoutBlocking,
+  --readRawBuffer, readRawBufferPtr,
+  --readRawBufferNoBlock, readRawBufferPtrNoBlock,
+  --writeRawBuffer, writeRawBufferPtr,
+
+#ifndef mingw32_HOST_OS
+  unlockFile,
+#endif
+
+  ioe_closedHandle, ioe_EOF, ioe_notReadable, ioe_notWritable,
+
+  stdin, stdout, stderr,
+  IOMode(..), openFile, openBinaryFile,
+  --fdToHandle_stat, 
+  fdToHandle, fdToHandle',
+  hFileSize, hSetFileSize, hIsEOF, isEOF, hLookAhead, hSetBuffering, hSetBinaryMode,
+  -- hLookAhead', 
+  hFlush, hDuplicate, hDuplicateTo,
+
+  hClose, hClose_help,
+
+  HandlePosition, HandlePosn(..), hGetPosn, hSetPosn,
+  SeekMode(..), hSeek, hTell,
+
+  hIsOpen, hIsClosed, hIsReadable, hIsWritable, hGetBuffering, hIsSeekable,
+  hSetEcho, hGetEcho, hIsTerminalDevice,
+
+  hShow,
+
+ ) where
+
+import "base" GHC.IO.IOMode
+import "base" GHC.IO.Handle
+import "base" GHC.IO.Handle.Internals
+import "base" GHC.IO.Handle.FD
+#ifndef mingw32_HOST_OS
+import "base" Foreign.C
+#endif
+
+#ifndef mingw32_HOST_OS
+foreign import ccall unsafe "unlockFile"
+  unlockFile :: CInt -> IO CInt
+#endif
+
diff --git a/GHC/IOBase.hs b/GHC/IOBase.hs
--- a/GHC/IOBase.hs
+++ b/GHC/IOBase.hs
@@ -1,2 +1,40 @@
-module GHC.IOBase (module X___) where
-import "base" GHC.IOBase as X___
+module GHC.IOBase(
+    IO(..), unIO, failIO, liftIO, bindIO, thenIO, returnIO, 
+    unsafePerformIO, unsafeInterleaveIO,
+    unsafeDupablePerformIO, unsafeDupableInterleaveIO,
+    noDuplicate,
+
+        -- To and from from ST
+    stToIO, ioToST, unsafeIOToST, unsafeSTToIO,
+
+        -- References
+    IORef(..), newIORef, readIORef, writeIORef, 
+    IOArray(..), newIOArray, readIOArray, writeIOArray, unsafeReadIOArray, unsafeWriteIOArray,
+    MVar(..),
+
+        -- Handles, file descriptors,
+    FilePath,  
+    Handle(..), Handle__(..), HandleType(..), IOMode(..), FD, 
+    isReadableHandleType, isWritableHandleType, isReadWriteHandleType, showHandle,
+
+        -- Buffers
+    -- Buffer(..), RawBuffer, BufferState(..), 
+    BufferList(..), BufferMode(..),
+    --bufferIsWritable, bufferEmpty, bufferFull, 
+
+        -- Exceptions
+    Exception(..), ArithException(..), AsyncException(..), ArrayException(..),
+    stackOverflow, heapOverflow, ioException, 
+    IOError, IOException(..), IOErrorType(..), ioError, userError,
+    ExitCode(..),
+    throwIO, block, unblock, blocked, catchAny, catchException,
+    evaluate,
+    ErrorCall(..), AssertionFailed(..), assertError, untangle,
+    BlockedOnDeadMVar(..), BlockedIndefinitely(..), Deadlock(..),
+    blockedOnDeadMVar, blockedIndefinitely
+  ) where
+
+import "base" GHC.Base
+import "base" GHC.Exception
+import "base" GHC.IO
+import "base" GHC.IOBase
diff --git a/Prelude.hs b/Prelude.hs
--- a/Prelude.hs
+++ b/Prelude.hs
@@ -1,3 +1,9 @@
 {-# OPTIONS_GHC -XNoImplicitPrelude #-}
-module Prelude (module X___) where
+module Prelude
+{-# DEPRECATED
+      ["You are using the old package `base' version 3.x."
+      ,"Future GHC versions will not support base version 3.x. You"
+      ,"should update your code to use the new base version 4.x."]
+  #-}
+  (module X___) where
 import "base" Prelude as X___
diff --git a/base.cabal b/base.cabal
--- a/base.cabal
+++ b/base.cabal
@@ -1,21 +1,27 @@
 name:           base
-version:        3.0.3.1
+version:        3.0.3.2
 license:        BSD3
 license-file:   LICENSE
 maintainer:     libraries@haskell.org
+bug-reports: http://hackage.haskell.org/trac/ghc/newticket?component=libraries/base
 synopsis:       Basic libraries (backwards-compatibility version)
 description:
     This is a backwards-compatible version of the base package.
     It depends on a later version of base, and was probably supplied
     with your compiler when it was installed.
     
-cabal-version:  >=1.2
+cabal-version:  >=1.6
 build-type: Simple
 
+source-repository head
+    type:     darcs
+    location: http://darcs.haskell.org/packages/base3-compat
+
 Library {
-    build-depends: base       >= 4.0 && < 4.2,
+    build-depends: base       >= 4.0 && < 4.3,
                    syb        >= 0.1 && < 0.2
-    extensions: PackageImports
+    extensions: PackageImports,CPP
+    ghc-options: -fno-warn-deprecations
 
     if impl(ghc < 6.9) {
         buildable: False
