diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2012-02-29  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cmu.cabal (Version): Released as version 1.4.  Also, constrained
+	the containers package to be 0.3 or greater.
+
+	* src/Algebra/CommutativeMonoid/Unification.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>
 
 	* cmu.cabal (Version): Released as version 1.3.
@@ -20,4 +29,3 @@
 
 	* cmu.cabal (Version): Released as version 1.1 after fixing the
 	embarrassing spelling error.
-
diff --git a/cmu.cabal b/cmu.cabal
--- a/cmu.cabal
+++ b/cmu.cabal
@@ -1,5 +1,5 @@
 Name:			cmu
-Version:		1.3
+Version:		1.4
 Maintainer:		ramsdell@mitre.org
 Cabal-Version:		>= 1.2
 License:		GPL
@@ -17,7 +17,7 @@
 Extra-Source-Files:	readme.txt ChangeLog Makefile
 
 Library
-  Build-Depends:	base >= 3 && < 5, containers, array
+  Build-Depends:	base >= 3 && < 5, containers >= 0.3, array
   Exposed-Modules:	Algebra.CommutativeMonoid.Unification
                         Algebra.CommutativeMonoid.HomLinDiaphEq
   Hs-Source-Dirs:	src
@@ -26,7 +26,7 @@
 
 Executable cmu
   Main-Is:		Algebra/CommutativeMonoid/Main.hs
-  Build-Depends:	base >= 3 && < 5, containers, array
+  Build-Depends:	base >= 3 && < 5, containers >= 0.3, array
   Other-Modules:	Algebra.CommutativeMonoid.Unification
                         Algebra.CommutativeMonoid.HomLinDiaphEq
   Hs-Source-Dirs:	src
diff --git a/src/Algebra/CommutativeMonoid/Unification.hs b/src/Algebra/CommutativeMonoid/Unification.hs
--- a/src/Algebra/CommutativeMonoid/Unification.hs
+++ b/src/Algebra/CommutativeMonoid/Unification.hs
@@ -145,7 +145,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
@@ -192,7 +192,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
