diff --git a/Merge/Dependencies.hs b/Merge/Dependencies.hs
--- a/Merge/Dependencies.hs
+++ b/Merge/Dependencies.hs
@@ -69,9 +69,7 @@
     test_deps :: Portage.Dependency
     test_deps = Portage.mkUseDependency (True, Portage.Use "test") $
                     Portage.DependAllOf $
-                    -- remove depends present in common section
-                    filter (\d -> not (Portage.dep_as_broad_as d raw_haskell_deps)) $
-                    map PN.normalize_depend $
+                    remove_raw_common $
                     testDependencies overlay pkg ghc_package_names merged_cabal_pkg_name
     cabal_dep :: Portage.Dependency
     cabal_dep = cabalDependency overlay pkg compiler_info
@@ -90,6 +88,7 @@
 
     setup_deps :: Portage.Dependency
     setup_deps = PN.normalize_depend $ Portage.DependAllOf $
+                     remove_raw_common $
                      setupDependencies overlay pkg ghc_package_names merged_cabal_pkg_name
 
     edeps :: EDep
@@ -127,6 +126,9 @@
                                ]
                   }
     add_profile    = Portage.addDepUseFlag (Portage.mkQUse (Portage.Use "profile"))
+    -- remove depends present in common section
+    remove_raw_common = filter (\d -> not (Portage.dep_as_broad_as d raw_haskell_deps))
+                      . map PN.normalize_depend
 
 ---------------------------------------------------------------
 -- Custom-setup dependencies
@@ -364,6 +366,7 @@
   , ("gtk2hsHookGenerator", any_c_p "dev-haskell" "gtk2hs-buildtools")
   , ("gtk2hsC2hs",          any_c_p "dev-haskell" "gtk2hs-buildtools")
   , ("hsb2hs",              any_c_p "dev-haskell" "hsb2hs")
+  , ("hsx2hs",              any_c_p "dev-haskell" "hsx2hs")
   , ("llvm-config",         any_c_p "sys-devel" "llvm")
   ]
 
@@ -403,6 +406,7 @@
 pkgconfig_table =
   [
    ("alsa",         ("media-libs", "alsa-lib", Portage.AnySlot))
+  ,("atk",          ("dev-libs", "atk", Portage.AnySlot))
   ,("gconf-2.0",    ("gnome-base", "gconf", Portage.AnySlot))
 
   ,("gio-2.0",                ("dev-libs", "glib", Portage.GivenSlot "2"))
@@ -427,6 +431,7 @@
   ,("webkitgtk-3.0",       ("net-libs", "webkit-gtk", Portage.GivenSlot "3"))
 
   ,("cairo",            ("x11-libs", "cairo", Portage.AnySlot)) -- need [svg] for dev-haskell/cairo
+  ,("cairo-gobject",    ("x11-libs", "cairo", Portage.AnySlot)) -- need [glib] for dev-haskell/cairo
   ,("cairo-ft",         ("x11-libs", "cairo", Portage.AnySlot))
   ,("cairo-ps",         ("x11-libs", "cairo", Portage.AnySlot))
   ,("cairo-png",        ("x11-libs", "cairo", Portage.AnySlot))
diff --git a/Portage/GHCCore.hs b/Portage/GHCCore.hs
--- a/Portage/GHCCore.hs
+++ b/Portage/GHCCore.hs
@@ -31,7 +31,7 @@
 -- It means that first ghc in this list is a minmum default.
 ghcs :: [(DC.CompilerInfo, InstalledPackageIndex)]
 ghcs = modern_ghcs
-    where modern_ghcs  = [ghc741, ghc742, ghc761, ghc762, ghc782, ghc7101, ghc7102, ghc801, ghc802]
+    where modern_ghcs  = [ghc741, ghc742, ghc761, ghc762, ghc782, ghc7101, ghc7102, ghc801, ghc802, ghc821]
 
 cabalFromGHC :: [Int] -> Maybe Cabal.Version
 cabalFromGHC ver = lookup ver table
@@ -44,6 +44,7 @@
           , ([7,10,2], Cabal.mkVersion [1,22,4,0])
           , ([8,0,1],  Cabal.mkVersion [1,24,0,0])
           , ([8,0,2],  Cabal.mkVersion [1,24,2,0])
+          , ([8,2,1],  Cabal.mkVersion [2,0,0,2])
           ]
 
 platform :: Platform
@@ -113,6 +114,9 @@
 ghc nrs = DC.unknownCompilerInfo c_id DC.NoAbiTag
     where c_id = CompilerId GHC (mkVersion nrs)
 
+ghc821 :: (DC.CompilerInfo, InstalledPackageIndex)
+ghc821 = (ghc [8,2,1], mkIndex ghc821_pkgs)
+
 ghc802 :: (DC.CompilerInfo, InstalledPackageIndex)
 ghc802 = (ghc [8,0,2], mkIndex ghc802_pkgs)
 
@@ -143,6 +147,36 @@
 -- | Non-upgradeable core packages
 -- Source: http://haskell.org/haskellwiki/Libraries_released_with_GHC
 --         and our binary tarballs (package.conf.d.initial subdir)
+
+ghc821_pkgs :: [Cabal.PackageIdentifier]
+ghc821_pkgs =
+  [ p "array" [0,5,2,0]
+  , p "base" [4,10,0,0]
+  , p "binary" [0,8,5,1] -- used by libghc
+  , p "bytestring" [0,10,8,2]
+--  , p "Cabal" [2,0,0,2]  package is upgradeable
+  , p "containers" [0,5,10,2]
+  , p "deepseq" [1,4,3,0] -- used by time
+  , p "directory" [1,3,0,2]
+  , p "filepath" [1,4,1,2]
+  , p "ghc-boot" [8,2,1]
+  , p "ghc-boot-th" [8,2,1]
+  , p "ghc-compact" [0,1,0,0]
+  , p "ghc-prim" [0,5,1,0]
+  , p "ghci" [8,2,1]
+--  , p "haskeline" [0,7,4,0]  package is upgradeable
+  , p "hoopl" [3,10,2,2] -- used by libghc
+  , p "hpc" [0,6,0,3] -- used by libghc
+  , p "integer-gmp" [1,0,1,0]
+  , p "pretty" [1,1,3,3]
+  , p "process" [1,6,1,0]
+  , p "template-haskell" [2,12,0,0] -- used by libghc
+  -- , p "terminfo" [0,4,1,0]
+  , p "time" [1,8,0,2] -- used by unix, directory, hpc, ghc. unsafe to upgrade
+  , p "transformers" [0,5,2,0] -- used by libghc
+  , p "unix" [2,7,2,2]
+--  , p "xhtml" [3000,2,2]
+  ]
 
 ghc802_pkgs :: [Cabal.PackageIdentifier]
 ghc802_pkgs =
diff --git a/README.rst b/README.rst
--- a/README.rst
+++ b/README.rst
@@ -104,7 +104,7 @@
 
     'hackport status [toportage]'
         Provides an overview comparing the overlay to the portage tree.
-        It will teel you, for each package and version, if the package exist
+        It will tell you, for each package and version, if the package exist
 
             - only in the portage tree
             - only in the overlay
diff --git a/hackport.cabal b/hackport.cabal
--- a/hackport.cabal
+++ b/hackport.cabal
@@ -1,5 +1,5 @@
 Name:           hackport
-Version:        0.5.3
+Version:        0.5.4
 License:        GPL
 License-file:   LICENSE
 Author:         Henning Günther, Duncan Coutts, Lennart Kolmodin
@@ -109,7 +109,6 @@
     AnsiColor
     Cabal2Ebuild
     Error
-    Main
     Overlays
     Paths_hackport
     Portage.Version
@@ -124,7 +123,6 @@
     Portage.Host
     Portage.Tables
     Merge.Dependencies
-    Setup
     Status
     Merge
     Util
