=== modified file 'django/core/management/commands/loaddata.py'
--- django/core/management/commands/loaddata.py	2009-01-17 22:15:07 +0000
+++ django/core/management/commands/loaddata.py	2009-02-08 23:31:28 +0000
@@ -103,8 +103,9 @@
                 sys.stderr.write(
                     self.style.ERROR("Problem installing fixture '%s': %s is not a known serialization format." %
                         (fixture_name, format)))
-                transaction.rollback()
-                transaction.leave_transaction_management()
+                if commit:
+                    transaction.rollback()
+                    transaction.leave_transaction_management()
                 return
 
             if os.path.isabs(fixture_name):
@@ -136,8 +137,9 @@
                                 fixture.close()
                                 print self.style.ERROR("Multiple fixtures named '%s' in %s. Aborting." %
                                     (fixture_name, humanize(fixture_dir)))
-                                transaction.rollback()
-                                transaction.leave_transaction_management()
+                                if commit:
+                                    transaction.rollback()
+                                    transaction.leave_transaction_management()
                                 return
                             else:
                                 fixture_count += 1
@@ -158,8 +160,9 @@
                                 except Exception:
                                     import traceback
                                     fixture.close()
-                                    transaction.rollback()
-                                    transaction.leave_transaction_management()
+                                    if commit:
+                                        transaction.rollback()
+                                        transaction.leave_transaction_management()
                                     if show_traceback:
                                         traceback.print_exc()
                                     else:
@@ -176,8 +179,9 @@
                                     sys.stderr.write(
                                         self.style.ERROR("No fixture data found for '%s'. (File format may be invalid.)" %
                                             (fixture_name)))
-                                    transaction.rollback()
-                                    transaction.leave_transaction_management()
+                                    if commit:
+                                        transaction.rollback()
+                                        transaction.leave_transaction_management()
                                     return
 
                         except Exception, e:

