Index: tests/regressiontests/datastructures/tests.py
===================================================================
--- tests/regressiontests/datastructures/tests.py	(Revision 6454)
+++ tests/regressiontests/datastructures/tests.py	(Arbeitskopie)
@@ -55,6 +55,14 @@
 >>> print repr(d)
 {'one': 'not one', 'two': 'two', 'three': 'three'}
 
+Init from sequence of tuples
+>>> d = SortedDict((
+... (1, "one"),
+... (0, "zero"),
+... (2, "two")))
+>>> print repr(d)
+{1: 'one', 0: 'zero', 2: 'two'}
+
 ### DotExpandedDict ############################################################
 
 >>> d = DotExpandedDict({'person.1.firstname': ['Simon'], 'person.1.lastname': ['Willison'], 'person.2.firstname': ['Adrian'], 'person.2.lastname': ['Holovaty']})
Index: django/utils/datastructures.py
===================================================================
--- django/utils/datastructures.py	(Revision 6473)
+++ django/utils/datastructures.py	(Arbeitskopie)
@@ -54,7 +54,10 @@
     def __init__(self, data=None):
         if data is None: data = {}
         dict.__init__(self, data)
-        self.keyOrder = data.keys()
+        if isinstance(data, dict):
+            self.keyOrder = data.keys()
+        else:
+            self.keyOrder=[key for key, value in data]
 
     def __setitem__(self, key, value):
         dict.__setitem__(self, key, value)
