diff --git a/Network/CGI/Monad.hs b/Network/CGI/Monad.hs
--- a/Network/CGI/Monad.hs
+++ b/Network/CGI/Monad.hs
@@ -32,7 +32,7 @@
 import Control.Exception as Exception (SomeException)
 import Control.Applicative (Applicative(..))
 import Control.Monad (liftM)
-import Control.Monad.Catch (MonadCatch, MonadThrow, throwM, catch, try)
+import Control.Monad.Catch (MonadCatch, MonadThrow, MonadMask, throwM, catch, try, mask, uninterruptibleMask)
 import Control.Monad.Except (MonadError(..))
 import Control.Monad.Reader (ReaderT(..), asks)
 import Control.Monad.Writer (WriterT(..), tell)
@@ -86,6 +86,10 @@
 
 instance MonadCatch m => MonadCatch (CGIT m) where
     CGIT m `catch` h = CGIT $ m `catch` (unCGIT . h)
+
+instance MonadMask m => MonadMask (CGIT m) where
+    mask a = CGIT $ mask $ \u -> unCGIT $ a $ CGIT . u . unCGIT
+    uninterruptibleMask a = CGIT $ uninterruptibleMask $ \u -> unCGIT $ a $ CGIT . u . unCGIT
 
 -- | The class of CGI monads. Most CGI actions can be run in
 --   any monad which is an instance of this class, which means that
diff --git a/cgi.cabal b/cgi.cabal
--- a/cgi.cabal
+++ b/cgi.cabal
@@ -1,5 +1,5 @@
 Name: cgi
-Version: 3001.2.1.0
+Version: 3001.2.2.0
 Copyright: Bjorn Bringert, John Chee, Andy Gill, Anders Kaseorg,
            Ian Lynagh, Erik Meijer, Sven Panne, Jeremy Shaw
 Category: Network
@@ -13,6 +13,7 @@
 Description:
  This is a Haskell library for writing CGI programs.
 Build-Type: Simple
+extra-source-files: changelog
 Cabal-Version: >=1.6
 
 source-repository head
diff --git a/changelog b/changelog
new file mode 100644
--- /dev/null
+++ b/changelog
@@ -0,0 +1,12 @@
+3001.2.2.0
+
+* MonadMask instance for CGIT
+
+3001.2.1.0
+
+* Applicative instance for CGI Monad
+* Deduplicate shared with `multipart` code
+
+3001.2.0.0
+
+* GHC 7.8.3 support
