Index: django/utils/datastructures.py
===================================================================
--- django/utils/datastructures.py	(revision 4613)
+++ django/utils/datastructures.py	(working copy)
@@ -1,7 +1,22 @@
 class MergeDict(object):
     """
-    A simple class for creating new "virtual" dictionaries that actualy look
+    A simple class for creating new "virtual" dictionaries that actually look
     up values in more than one dictionary, passed in the constructor.
+
+    >>> d1 = {'chris':'cool','camri':'cute','cotton':'adorable','tulip':'snuggable', 'twoofme':'firstone'}
+    >>> d2 = {'chris2':'cool2','camri2':'cute2','cotton2':'adorable2','tulip2':'snuggable2'}
+    >>> d3 = {'chris3':'cool3','camri3':'cute3','cotton3':'adorable3','tulip3':'snuggable3'}
+    >>> d4 = {'twoofme':'secondone'}
+    >>> md = MergeDict( d1,d2,d3 )
+    >>> md['chris']
+    'cool'
+    >>> md['camri']
+    'cute'
+    >>> md['twoofme']
+    'firstone'
+    >>> md2 = md.copy()
+    >>> md2['chris']
+    'cool'
     """
     def __init__(self, *dicts):
         self.dicts = dicts
@@ -17,6 +32,9 @@
     def __contains__(self, key):
         return self.has_key(key)
 
+    def __copy__(self):
+	return self.__class__(*self.dicts)
+
     def get(self, key, default=None):
         try:
             return self[key]
@@ -43,6 +61,10 @@
                 return True
         return False
 
+    def copy(self):
+	""" returns a copy of this object"""
+	return self.__copy__()
+
 class SortedDict(dict):
     "A dictionary that keeps its keys in the order in which they're inserted."
     def __init__(self, data=None):
