diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,8 @@
+= Version 1.1.0.0, 2011-11-28 =
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+* Updates for containers 0.5.0.0.
+
+
 = Version 1.0.0.3, 2011-04-19 =
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 * Convert the repository to Git.
diff --git a/containers-benchmark.cabal b/containers-benchmark.cabal
--- a/containers-benchmark.cabal
+++ b/containers-benchmark.cabal
@@ -1,5 +1,5 @@
 Name:                containers-benchmark
-Version:             1.0.0.3
+Version:             1.1.0.0
 Synopsis:            Extensive benchmark suite for containers package.
 Description:         This package evaluates performance of a containers package
                      from multiple perspectives.
@@ -18,7 +18,7 @@
 Stability:           Experimental
 Category:            Benchmarking
 Build-type:          Simple
-Cabal-version:       >=1.2
+Cabal-version:       >=1.6
 Extra-source-files:  CHANGES
                      README
                      scripts/benchmark.sh
@@ -36,18 +36,31 @@
                      src/Benchmark/Set-like.inc.hs
                      src/Variants/gen.sh
 
+source-repository head
+  type:     git
+  location: http://git.auryn.cz/haskell/containers-benchmark/
+
 Executable benchmark
   Main-is:           Main.hs
   Build-depends:     base >= 3 && < 5,
                      bytestring >= 0.9 && < 1.0,
-                     containers >= 0.3 && < 0.5,
+                     containers >= 0.5 && < 0.6,
                      criterion >= 0.5 && < 0.6,
-                     random >= 1.0 && < 1.1
+                     random >= 1.0 && < 1.1,
+                     deepseq,
+                     ghc-prim
   Hs-source-dirs:    src
   Other-modules:     Container.IntMap
+                     Container.IntMap.Base
+                     Container.IntMap.Lazy
+                     Container.IntMap.Strict
                      Container.IntSet
                      Container.Map
+                     Container.Map.Base
+                     Container.Map.Lazy
+                     Container.Map.Strict
                      Container.Set
+                     Container.StrictPair
                      InputData.ByteString
                      InputData.Int
                      InputData.IntegerBig
diff --git a/scripts/custom_containers.sh b/scripts/custom_containers.sh
--- a/scripts/custom_containers.sh
+++ b/scripts/custom_containers.sh
@@ -6,15 +6,9 @@
 
 set -e
 
-FLAGS=-O2
-if grep -q '0\.3\.0\.0' $1/containers.cabal
-then
-  FLAGS="$FLAGS -cpp -XMagicHash"
-else
-  FLAGS="$FLAGS -fregs-graph"
-fi
+FLAGS="-O2"
 
-for c in Map Set IntMap IntSet
+for c in Map Map/Base Map/Lazy Map/Strict Set IntMap IntMap/Base IntMap/Lazy IntMap/Strict IntSet StrictPair
 do
   cat "$1/Data/$c.hs" | sed '
     1i\
@@ -23,5 +17,6 @@
     s/Data\.IntSet/Container.IntSet/
     s/Data\.Map/Container.Map/
     s/Data\.Set/Container.Set/
+    s/Data\.StrictPair/Container.StrictPair/
   ' >../src/Container/$c.hs
 done
diff --git a/scripts/ghc.sh b/scripts/ghc.sh
--- a/scripts/ghc.sh
+++ b/scripts/ghc.sh
@@ -11,12 +11,22 @@
 [ -n "$3" ] || { usage; exit 1; }
 
 # 1) get ready the GHC source tree
-cp "$1/containers.cabal" "$2/libraries/containers/"
-cp "$1/Data/IntMap.hs"   "$2/libraries/containers/Data/"
-cp "$1/Data/IntSet.hs"   "$2/libraries/containers/Data/"
-cp "$1/Data/Map.hs"      "$2/libraries/containers/Data/"
-cp "$1/Data/Set.hs"      "$2/libraries/containers/Data/"
+[ -d "$2/libraries/containers/Data/IntMap/" ] || mkdir "$2/libraries/containers/Data/IntMap/"
+[ -d "$2/libraries/containers/Data/Map/" ] || mkdir "$2/libraries/containers/Data/Map/"
 
+cp "$1/containers.cabal"      "$2/libraries/containers/"
+cp "$1/Data/IntMap.hs"        "$2/libraries/containers/Data/"
+cp "$1/Data/IntMap/Base.hs"   "$2/libraries/containers/Data/IntMap/"
+cp "$1/Data/IntMap/Lazy.hs"   "$2/libraries/containers/Data/IntMap/"
+cp "$1/Data/IntMap/Strict.hs" "$2/libraries/containers/Data/IntMap/"
+cp "$1/Data/IntSet.hs"        "$2/libraries/containers/Data/"
+cp "$1/Data/Map.hs"           "$2/libraries/containers/Data/"
+cp "$1/Data/Map/Base.hs"      "$2/libraries/containers/Data/Map/"
+cp "$1/Data/Map/Lazy.hs"      "$2/libraries/containers/Data/Map/"
+cp "$1/Data/Map/Strict.hs"    "$2/libraries/containers/Data/Map/"
+cp "$1/Data/Set.hs"           "$2/libraries/containers/Data/"
+cp "$1/Data/StrictPair.hs"    "$2/libraries/containers/Data/"
+
 # 2) build GHC
 (cd "$2" && make -j4)
 
@@ -30,9 +40,9 @@
 rm /tmp/ghc-stage2
 
 echo -e "\nTest;Bytes allocated" >> "$3"
-(cd "$2/testsuite/tests/ghc-regress/perf/compiler/" && make)
-for t in T1969 T3294
+(cd "$2/testsuite/tests/perf/compiler/" && make)
+for t in T1969 T3064 T3294 T4801 T5030
 do
   echo -n "$t;" >> "$3"
-  sed -n 's/^.*bytes allocated.*"\([0-9]*\)".*$/\1/;T;p' "$2/testsuite/tests/ghc-regress/perf/compiler/$t.comp.stats" >> "$3"
+  sed -n 's/^.*bytes allocated.*"\([0-9]*\)".*$/\1/;T;p' "$2/testsuite/tests/perf/compiler/$t.comp.stats" >> "$3"
 done
diff --git a/src/Benchmark/Map-like.inc.hs b/src/Benchmark/Map-like.inc.hs
--- a/src/Benchmark/Map-like.inc.hs
+++ b/src/Benchmark/Map-like.inc.hs
@@ -50,9 +50,9 @@
 
 bench_intersection (_, c, c_even, _) = C.intersection c c_even `seq` ()
 
-bench_foldlist (_, c, _, _) = force $ C.fold (:) [] c
+bench_foldlist (_, c, _, _) = force $ C.foldr (:) [] c
   where force list = length list `seq` ()
 
 #ifdef FOLD_SUM
-bench_foldsum (_, c, _, _) = C.fold (+) 0 c `seq` ()
+bench_foldsum (_, c, _, _) = C.foldl' (+) 0 c `seq` ()
 #endif
diff --git a/src/Benchmark/Set-like.inc.hs b/src/Benchmark/Set-like.inc.hs
--- a/src/Benchmark/Set-like.inc.hs
+++ b/src/Benchmark/Set-like.inc.hs
@@ -40,9 +40,9 @@
 
 bench_intersection (_, c, c_even, _) = C.intersection c c_even `seq` ()
 
-bench_foldlist (_, c, _, _) = force $ C.fold (:) [] c
+bench_foldlist (_, c, _, _) = force $ C.foldr (:) [] c
   where force list = length list `seq` ()
 
 #ifdef FOLD_SUM
-bench_foldsum (_, c, _, _) = C.fold (+) 0 c `seq` ()
+bench_foldsum (_, c, _, _) = C.foldl' (+) 0 c `seq` ()
 #endif
diff --git a/src/Container/IntMap/Base.hs b/src/Container/IntMap/Base.hs
new file mode 100644
--- /dev/null
+++ b/src/Container/IntMap/Base.hs
@@ -0,0 +1,1 @@
+module Container.IntMap.Base () where
diff --git a/src/Container/IntMap/Lazy.hs b/src/Container/IntMap/Lazy.hs
new file mode 100644
--- /dev/null
+++ b/src/Container/IntMap/Lazy.hs
@@ -0,0 +1,3 @@
+module Container.IntMap.Lazy (module Data.Map.Lazy) where
+
+import Data.IntMap.Lazy
diff --git a/src/Container/IntMap/Strict.hs b/src/Container/IntMap/Strict.hs
new file mode 100644
--- /dev/null
+++ b/src/Container/IntMap/Strict.hs
@@ -0,0 +1,3 @@
+module Container.IntMap.Strict (module Data.Map.Strict) where
+
+import Data.IntMap.Strict
diff --git a/src/Container/Map/Base.hs b/src/Container/Map/Base.hs
new file mode 100644
--- /dev/null
+++ b/src/Container/Map/Base.hs
@@ -0,0 +1,1 @@
+module Container.Map.Base () where
diff --git a/src/Container/Map/Lazy.hs b/src/Container/Map/Lazy.hs
new file mode 100644
--- /dev/null
+++ b/src/Container/Map/Lazy.hs
@@ -0,0 +1,3 @@
+module Container.Map.Lazy (module Data.Map.Lazy) where
+
+import Data.Map.Lazy
diff --git a/src/Container/Map/Strict.hs b/src/Container/Map/Strict.hs
new file mode 100644
--- /dev/null
+++ b/src/Container/Map/Strict.hs
@@ -0,0 +1,3 @@
+module Container.Map.Strict (module Data.Map.Strict) where
+
+import Data.Map.Strict
diff --git a/src/Container/StrictPair.hs b/src/Container/StrictPair.hs
new file mode 100644
--- /dev/null
+++ b/src/Container/StrictPair.hs
@@ -0,0 +1,1 @@
+module Container.StrictPair () where
