Index: django/utils/datastructures.py
===================================================================
--- django/utils/datastructures.py	(revision 7121)
+++ django/utils/datastructures.py	(working copy)
@@ -145,7 +145,7 @@
         """Returns a copy of this object."""
         # This way of initializing the copy means it works for subclasses, too.
         obj = self.__class__(self)
-        obj.keyOrder = self.keyOrder
+        obj.keyOrder = self.keyOrder[:]
         return obj
 
     def __repr__(self):
Index: tests/regressiontests/datastructures/tests.py
===================================================================
--- tests/regressiontests/datastructures/tests.py	(revision 7121)
+++ tests/regressiontests/datastructures/tests.py	(working copy)
@@ -77,6 +77,8 @@
 'not one'
 >>> d.keys() == d.copy().keys()
 True
+>>> d2 = d.copy()
+>>> d2['four'] = 'four'
 >>> print repr(d)
 {'one': 'not one', 'two': 'two', 'three': 'three'}
 >>> d.pop('one', 'missing')
