diff -ura Django-1.0-v/django/core/management/commands/dumpdata.py Django-1.0/django/core/management/commands/dumpdata.py
--- Django-1.0-v/django/core/management/commands/dumpdata.py	2008-06-13 02:08:50.000000000 +0200
+++ Django-1.0/django/core/management/commands/dumpdata.py	2008-11-14 11:32:26.386860420 +0100
@@ -2,6 +2,7 @@
 from django.core import serializers
 
 from optparse import make_option
+import sys
 
 class Command(BaseCommand):
     option_list = BaseCommand.option_list + (
@@ -40,12 +41,13 @@
         except KeyError:
             raise CommandError("Unknown serialization format: %s" % format)
 
-        objects = []
-        for app in app_list:
-            for model in get_models(app):
-                objects.extend(model._default_manager.all())
+        def get_objects (): 
+            for app in app_list: 
+                for model in get_models(app): 
+                    for obj in model._default_manager.order_by(model._meta.pk.name).iterator(): 
+                        yield obj
         try:
-            return serializers.serialize(format, objects, indent=indent)
+            serializers.serialize(format, get_objects(), indent=indent, stream=sys.stdout) 
         except Exception, e:
             if show_traceback:
                 raise
diff -ura Django-1.0-v/django/core/management/__init__.py Django-1.0/django/core/management/__init__.py
--- Django-1.0-v/django/core/management/__init__.py	2008-08-31 20:21:06.000000000 +0200
+++ Django-1.0/django/core/management/__init__.py	2008-09-09 16:04:18.667023812 +0200
@@ -22,8 +22,8 @@
     """
     command_dir = os.path.join(management_dir, 'commands')
     try:
-        return [f[:-3] for f in os.listdir(command_dir)
-                if not f.startswith('_') and f.endswith('.py')]
+        return [f[:f.rfind('.')] for f in os.listdir(command_dir)
+                if not f.startswith('_') and (f.endswith('.py') or f.endswith('.pyc'))]
     except OSError:
         return []
 
diff -ura Django-1.0-v/django/core/serializers/base.py Django-1.0/django/core/serializers/base.py
--- Django-1.0-v/django/core/serializers/base.py	2008-08-27 09:19:44.000000000 +0200
+++ Django-1.0/django/core/serializers/base.py	2008-11-14 11:59:42.555644595 +0100
@@ -35,6 +35,7 @@
         self.selected_fields = options.get("fields")
 
         self.start_serialization()
+        self.first = True 
         for obj in queryset:
             self.start_object(obj)
             for field in obj._meta.local_fields:
@@ -50,6 +51,8 @@
                     if self.selected_fields is None or field.attname in self.selected_fields:
                         self.handle_m2m_field(obj, field)
             self.end_object(obj)
+            if self.first: 
+                self.first = False 
         self.end_serialization()
         return self.getvalue()
 
diff -ura Django-1.0-v/django/core/serializers/json.py Django-1.0/django/core/serializers/json.py
--- Django-1.0-v/django/core/serializers/json.py	2008-07-30 12:40:37.000000000 +0200
+++ Django-1.0/django/core/serializers/json.py	2008-11-14 11:13:50.938860413 +0100
@@ -21,12 +21,34 @@
     """
     internal_use_only = False
 
+    def start_serialization(self): 
+        self._current = None 
+        self.json_kwargs = self.options.copy() 
+        self.json_kwargs.pop('stream', None) 
+        self.json_kwargs.pop('fields', None) 
+        self.stream.write("[")
+    
     def end_serialization(self):
-        self.options.pop('stream', None)
-        self.options.pop('fields', None)
-        simplejson.dump(self.objects, self.stream, cls=DjangoJSONEncoder, **self.options)
-
+         if self.options.get("indent"): 
+            self.stream.write("\n") 
+            self.stream.write("]") 
+            if self.options.get("indent"): 
+                self.stream.write("\n") 
+
+    def end_object(self, obj): 
+        # self._current has the field data 
+        if not self.first: 
+            self.stream.write(",") 
+        if not self.options.get("indent"): 
+            self.stream.write(" ") 
+        if self.options.get("indent"): 
+            self.stream.write("\n") 
+        simplejson.dump(self.get_dump_object(obj), self.stream, 
+                        cls=DjangoJSONEncoder, **self.json_kwargs) 
+        self._current = None 
+            
     def getvalue(self):
+        # overwrite PythonSerializer.getvalue() with base Serializer.getvalue() 
         if callable(getattr(self.stream, 'getvalue', None)):
             return self.stream.getvalue()
 
diff -ura Django-1.0-v/django/core/serializers/python.py Django-1.0/django/core/serializers/python.py
--- Django-1.0-v/django/core/serializers/python.py	2008-08-28 21:38:56.000000000 +0200
+++ Django-1.0/django/core/serializers/python.py	2008-11-14 11:13:51.374955702 +0100
@@ -27,15 +27,19 @@
         self._current = {}
 
     def end_object(self, obj):
-        self.objects.append({
+        self.objects.append(self.get_dump_object(obj)) 
+        self._current = None 
+
+    def get_dump_object (self, obj): 
+        return {
             "model"  : smart_unicode(obj._meta),
             "pk"     : smart_unicode(obj._get_pk_val(), strings_only=True),
             "fields" : self._current
-        })
-        self._current = None
+        }
 
     def handle_field(self, obj, field):
-        self._current[field.name] = smart_unicode(getattr(obj, field.name), strings_only=True)
+        value = smart_unicode(getattr(obj, field.name), strings_only=True) 
+        self._current[field.name] = value 
 
     def handle_fk_field(self, obj, field):
         related = getattr(obj, field.name)
diff -ura Django-1.0-v/tests/modeltests/fixtures/models.py Django-1.0/tests/modeltests/fixtures/models.py
--- Django-1.0-v/tests/modeltests/fixtures/models.py	2008-08-12 16:15:38.000000000 +0200
+++ Django-1.0/tests/modeltests/fixtures/models.py	2008-11-14 11:13:51.759604656 +0100
@@ -81,7 +81,7 @@
 
 # Dump the current contents of the database as a JSON fixture
 >>> management.call_command('dumpdata', 'fixtures', format='json')
-[{"pk": 3, "model": "fixtures.article", "fields": {"headline": "Time to reform copyright", "pub_date": "2006-06-16 13:00:00"}}, {"pk": 2, "model": "fixtures.article", "fields": {"headline": "Poker has no place on ESPN", "pub_date": "2006-06-16 12:00:00"}}, {"pk": 1, "model": "fixtures.article", "fields": {"headline": "Python program becomes self aware", "pub_date": "2006-06-16 11:00:00"}}]
+[{"pk": 1, "model": "fixtures.article", "fields": {"headline": "Python program becomes self aware", "pub_date": "2006-06-16 11:00:00"}}, {"pk": 2, "model": "fixtures.article", "fields": {"headline": "Poker has no place on ESPN", "pub_date": "2006-06-16 12:00:00"}}, {"pk": 3, "model": "fixtures.article", "fields": {"headline": "Time to reform copyright", "pub_date": "2006-06-16 13:00:00"}}]
 """
 
 from django.test import TestCase
