Index: django/forms/formsets.py
===================================================================
--- django/forms/formsets.py	(Revision 12361)
+++ django/forms/formsets.py	(Arbeitskopie)
@@ -191,14 +191,12 @@
             # A sort function to order things numerically ascending, but
             # None should be sorted below anything else. Allowing None as
             # a comparison value makes it so we can leave ordering fields
-            # blamk.
-            def compare_ordering_values(x, y):
-                if x[1] is None:
-                    return 1
-                if y[1] is None:
-                    return -1
-                return x[1] - y[1]
-            self._ordering.sort(compare_ordering_values)
+            # blank.
+            def compare_ordering_key(k):
+                if k[1] is None:
+                    return (1, 0) # +infinity, larger than any number
+                return (0, k[1])
+            self._ordering.sort(key=compare_ordering_key)
         # Return a list of form.cleaned_data dicts in the order spcified by
         # the form data.
         return [self.forms[i[0]] for i in self._ordering]
Index: django/forms/forms.py
===================================================================
--- django/forms/forms.py	(Revision 12361)
+++ django/forms/forms.py	(Arbeitskopie)
@@ -34,7 +34,7 @@
     Also integrates any additional media definitions
     """
     fields = [(field_name, attrs.pop(field_name)) for field_name, obj in attrs.items() if isinstance(obj, Field)]
-    fields.sort(lambda x, y: cmp(x[1].creation_counter, y[1].creation_counter))
+    fields.sort(key=lambda x: x[1].creation_counter)
 
     # If this class is subclassing another Form, add that Form's fields.
     # Note that we loop over the bases in *reverse*. This is necessary in
Index: django/contrib/admin/options.py
===================================================================
--- django/contrib/admin/options.py	(Revision 12361)
+++ django/contrib/admin/options.py	(Arbeitskopie)
@@ -498,7 +498,7 @@
 
         # Convert the actions into a SortedDict keyed by name
         # and sorted by description.
-        actions.sort(lambda a,b: cmp(a[2].lower(), b[2].lower()))
+        actions.sort(key=lambda k: k[2].lower())
         actions = SortedDict([
             (name, (func, name, desc))
             for func, name, desc in actions
Index: django/contrib/admin/sites.py
===================================================================
--- django/contrib/admin/sites.py	(Revision 12361)
+++ django/contrib/admin/sites.py	(Arbeitskopie)
@@ -378,11 +378,11 @@
 
         # Sort the apps alphabetically.
         app_list = app_dict.values()
-        app_list.sort(lambda x, y: cmp(x['name'], y['name']))
+        app_list.sort(key=lambda x: x['name'])
 
         # Sort the models alphabetically within each app.
         for app in app_list:
-            app['models'].sort(lambda x, y: cmp(x['name'], y['name']))
+            app['models'].sort(key=lambda x: x['name'])
 
         context = {
             'title': _('Site administration'),
@@ -442,7 +442,7 @@
         if not app_dict:
             raise http.Http404('The requested admin page does not exist.')
         # Sort the models alphabetically within each app.
-        app_dict['models'].sort(lambda x, y: cmp(x['name'], y['name']))
+        app_dict['models'].sort(key=lambda x: x['name'])
         context = {
             'title': _('%s administration') % capfirst(app_label),
             'app_list': [app_dict],
Index: django/contrib/databrowse/plugins/calendars.py
===================================================================
--- django/contrib/databrowse/plugins/calendars.py	(Revision 12361)
+++ django/contrib/databrowse/plugins/calendars.py	(Arbeitskopie)
@@ -60,7 +60,7 @@
     def homepage_view(self, request):
         easy_model = EasyModel(self.site, self.model)
         field_list = self.fields.values()
-        field_list.sort(lambda x, y: cmp(x.verbose_name, y.verbose_name))
+        field_list.sort(key=lambda k:k.verbose_name)
         return render_to_response('databrowse/calendar_homepage.html', {'root_url': self.site.root_url, 'model': easy_model, 'field_list': field_list})
 
     def calendar_view(self, request, field, year=None, month=None, day=None):
Index: django/contrib/databrowse/plugins/fieldchoices.py
===================================================================
--- django/contrib/databrowse/plugins/fieldchoices.py	(Revision 12361)
+++ django/contrib/databrowse/plugins/fieldchoices.py	(Arbeitskopie)
@@ -61,7 +61,7 @@
     def homepage_view(self, request):
         easy_model = EasyModel(self.site, self.model)
         field_list = self.fields.values()
-        field_list.sort(lambda x, y: cmp(x.verbose_name, y.verbose_name))
+        field_list.sort(key=lambda k: k.verbose_name)
         return render_to_response('databrowse/fieldchoice_homepage.html', {'root_url': self.site.root_url, 'model': easy_model, 'field_list': field_list})
 
     def field_view(self, request, field, value=None):
Index: django/utils/translation/trans_real.py
===================================================================
--- django/utils/translation/trans_real.py	(Revision 12361)
+++ django/utils/translation/trans_real.py	(Arbeitskopie)
@@ -507,7 +507,7 @@
             return []
         priority = priority and float(priority) or 1.0
         result.append((lang, priority))
-    result.sort(lambda x, y: -cmp(x[1], y[1]))
+    result.sort(key=lambda k: k[1], reverse=True)
     return result
 
 # get_date_formats and get_partial_date_formats aren't used anymore by Django
