diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2012-02-29  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* agum.cabal (Version): Released as version 2.4.  Also,
+	constrained the containers package to be 0.3 or greater.
+
+	* src/Algebra/AbelianGroup/UnificationMatching.hs:  Replaced
+	occurrences of Data.Map.foldWithKey by Data.Map.foldrWithKey as
+	the former has been deprecated.
+
 2010-06-21  John D. Ramsdell  <ramsdell@mitre.org>
 
 	* agum.cabal (Version): Released as version 2.3.
diff --git a/agum.cabal b/agum.cabal
--- a/agum.cabal
+++ b/agum.cabal
@@ -1,5 +1,5 @@
 Name:			agum
-Version:		2.3
+Version:		2.4
 Maintainer:		ramsdell@mitre.org
 Cabal-Version:		>= 1.2
 License:		GPL
@@ -19,7 +19,7 @@
 Extra-Source-Files:	readme.txt ChangeLog Makefile
 
 Library
-  Build-Depends:	base >= 3 && < 5, containers
+  Build-Depends:	base >= 3 && < 5, containers >= 0.3
   Exposed-Modules:	Algebra.AbelianGroup.UnificationMatching
                         Algebra.AbelianGroup.IntLinEq
   Hs-Source-Dirs:	src
@@ -28,7 +28,7 @@
 
 Executable agum
   Main-Is:		Algebra/AbelianGroup/Main.hs
-  Build-Depends:	base >= 3 && < 5, containers
+  Build-Depends:	base >= 3 && < 5, containers >= 0.3
   Other-Modules:	Algebra.AbelianGroup.UnificationMatching
                         Algebra.AbelianGroup.IntLinEq
   Hs-Source-Dirs:	src
diff --git a/src/Algebra/AbelianGroup/UnificationMatching.hs b/src/Algebra/AbelianGroup/UnificationMatching.hs
--- a/src/Algebra/AbelianGroup/UnificationMatching.hs
+++ b/src/Algebra/AbelianGroup/UnificationMatching.hs
@@ -158,7 +158,7 @@
 -- | Add two terms.
 add :: Term -> Term -> Term
 add (Term t) (Term t') =
-    Term $ Map.foldWithKey f t' t -- Fold over the mappings in t
+    Term $ Map.foldrWithKey f t' t -- Fold over the mappings in t
     where
       f x c t =                 -- Alter the mapping of
           Map.alter (g c) x t   -- variable x in t
@@ -205,7 +205,7 @@
 -- | Return the result of applying a substitution to a term.
 apply :: Substitution -> Term -> Term
 apply (Substitution s) (Term t) =
-    Map.foldWithKey f ide t
+    Map.foldrWithKey f ide t
     where
       f x n t =
           add (mul n (Map.findWithDefault (var x) x s)) t
