diff --git a/django/core/management/commands/flush.py b/django/core/management/commands/flush.py
index bcadb96..93b7f83 100644
--- a/django/core/management/commands/flush.py
+++ b/django/core/management/commands/flush.py
@@ -79,4 +79,4 @@ The full error: %s""" % (connection.settings_dict['NAME'], e))
             call_command('loaddata', 'initial_data', **kwargs)
 
         else:
-            print "Flush cancelled."
+            return "Flush cancelled.\n"
diff --git a/django/core/management/commands/makemessages.py b/django/core/management/commands/makemessages.py
index a244a60..e80457c 100644
--- a/django/core/management/commands/makemessages.py
+++ b/django/core/management/commands/makemessages.py
@@ -77,7 +77,7 @@ def find_files(root, ignore_patterns, verbosity, symlinks=False):
             norm_filepath = os.path.normpath(os.path.join(dirpath, f))
             if is_ignored(norm_filepath, ignore_patterns):
                 if verbosity > 1:
-                    sys.stdout.write('ignoring file %s in %s\n' % (f, dirpath))
+                    self.stdout.write('ignoring file %s in %s\n' % (f, dirpath))
             else:
                 all_files.extend([(dirpath, f)])
     all_files.sort()
@@ -101,7 +101,7 @@ def copy_plural_forms(msgs, locale, domain, verbosity):
             m = plural_forms_re.search(open(django_po, 'rU').read())
             if m:
                 if verbosity > 1:
-                    sys.stderr.write("copying plural forms: %s\n" % m.group('value'))
+                    self.stderr.write("copying plural forms: %s\n" % m.group('value'))
                 lines = []
                 seen = False
                 for line in msgs.split('\n'):
@@ -167,7 +167,7 @@ def make_messages(locale=None, domain='django', verbosity='1', all=False,
 
     for locale in languages:
         if verbosity > 0:
-            print "processing language", locale
+            self.stdout.write('processing language %s\n' % locale)
         basedir = os.path.join(localedir, locale, 'LC_MESSAGES')
         if not os.path.isdir(basedir):
             os.makedirs(basedir)
@@ -182,7 +182,7 @@ def make_messages(locale=None, domain='django', verbosity='1', all=False,
             file_base, file_ext = os.path.splitext(file)
             if domain == 'djangojs' and file_ext in extensions:
                 if verbosity > 1:
-                    sys.stdout.write('processing file %s in %s\n' % (file, dirpath))
+                    self.stdout.write('processing file %s in %s\n' % (file, dirpath))
                 src = open(os.path.join(dirpath, file), "rU").read()
                 src = pythonize_re.sub('\n#', src)
                 thefile = '%s.py' % file
@@ -234,7 +234,7 @@ def make_messages(locale=None, domain='django', verbosity='1', all=False,
                     finally:
                         f.close()
                 if verbosity > 1:
-                    sys.stdout.write('processing file %s in %s\n' % (file, dirpath))
+                    self.stdout.write('processing file %s in %s\n' % (file, dirpath))
                 cmd = (
                     'xgettext -d %s -L Python %s --keyword=gettext_noop '
                     '--keyword=gettext_lazy --keyword=ngettext_lazy:1,2 '
@@ -359,7 +359,7 @@ class Command(NoArgsCommand):
             extensions = handle_extensions(extensions or ['html'])
 
         if verbosity > 1:
-            sys.stdout.write('examining files with the extensions: %s\n'
+            self.stdout.write('examining files with the extensions: %s\n'
                              % get_text_list(list(extensions), 'and'))
 
         make_messages(locale, domain, verbosity, process_all, extensions, symlinks, ignore_patterns, no_wrap, no_obsolete)
diff --git a/django/core/management/commands/reset.py b/django/core/management/commands/reset.py
index 388045f..703a9d1 100644
--- a/django/core/management/commands/reset.py
+++ b/django/core/management/commands/reset.py
@@ -60,4 +60,4 @@ Hint: Look at the output of 'django-admin.py sqlreset %s'. That's the SQL this c
 The full error: %s""" % (app_name, app_name, e))
             transaction.commit_unless_managed()
         else:
-            print "Reset cancelled."
+            self.stdout.write("Reset cancelled.\n")
diff --git a/django/core/management/commands/runserver.py b/django/core/management/commands/runserver.py
index b265740..520c5c9 100644
--- a/django/core/management/commands/runserver.py
+++ b/django/core/management/commands/runserver.py
@@ -116,7 +116,7 @@ class BaseRunserverCommand(BaseCommand):
                 error_text = ERRORS[e.args[0].args[0]]
             except (AttributeError, KeyError):
                 error_text = str(e)
-            sys.stderr.write(self.style.ERROR("Error: %s" % error_text) + '\n')
+            self.stderr.write(self.style.ERROR("Error: %s" % error_text) + '\n')
             # Need to use an OS exit because sys.exit doesn't work in a thread
             os._exit(1)
         except KeyboardInterrupt:
diff --git a/django/core/management/commands/syncdb.py b/django/core/management/commands/syncdb.py
index a5228a1..be4156f 100644
--- a/django/core/management/commands/syncdb.py
+++ b/django/core/management/commands/syncdb.py
@@ -81,12 +81,12 @@ class Command(NoArgsCommand):
 
         # Create the tables for each model
         if verbosity >= 1:
-            print "Creating tables ..."
+            self.stdout.write("Creating tables ...\n")
         for app_name, model_list in manifest.items():
             for model in model_list:
                 # Create the model's database table, if it doesn't already exist.
                 if verbosity >= 3:
-                    print "Processing %s.%s model" % (app_name, model._meta.object_name)
+                    self.stdout.write("Processing %s.%s model\n" % (app_name, model._meta.object_name))
                 sql, references = connection.creation.sql_create_model(model, self.style, seen_models)
                 seen_models.add(model)
                 created_models.add(model)
@@ -96,7 +96,7 @@ class Command(NoArgsCommand):
                         sql.extend(connection.creation.sql_for_pending_references(refto, self.style, pending_references))
                 sql.extend(connection.creation.sql_for_pending_references(model, self.style, pending_references))
                 if verbosity >= 1 and sql:
-                    print "Creating table %s" % model._meta.db_table
+                    self.stdout.write("Creating table %s\n" % model._meta.db_table)
                 for statement in sql:
                     cursor.execute(statement)
                 tables.append(connection.introspection.table_name_converter(model._meta.db_table))
@@ -114,19 +114,20 @@ class Command(NoArgsCommand):
         # Install custom SQL for the app (but only if this
         # is a model we've just created)
         if verbosity >= 1:
-            print "Installing custom SQL ..."
+            self.stdout.write("Installing custom SQL ...\n")
         for app_name, model_list in manifest.items():
             for model in model_list:
                 if model in created_models:
                     custom_sql = custom_sql_for_model(model, self.style, connection)
                     if custom_sql:
                         if verbosity >= 2:
-                            print "Installing custom SQL for %s.%s model" % (app_name, model._meta.object_name)
+                            self.stdout.write("Installing custom SQL for %s.%s model\n" % 
+                                                (app_name, model._meta.object_name))
                         try:
                             for sql in custom_sql:
                                 cursor.execute(sql)
                         except Exception, e:
-                            sys.stderr.write("Failed to install custom SQL for %s.%s model: %s\n" % \
+                            self.stderr.write("Failed to install custom SQL for %s.%s model: %s\n" %
                                                 (app_name, model._meta.object_name, e))
                             if show_traceback:
                                 import traceback
@@ -136,10 +137,11 @@ class Command(NoArgsCommand):
                             transaction.commit_unless_managed(using=db)
                     else:
                         if verbosity >= 3:
-                            print "No custom SQL for %s.%s model" % (app_name, model._meta.object_name)
+                            self.stdout.write("No custom SQL for %s.%s model\n" %
+                                                (app_name, model._meta.object_name))
 
         if verbosity >= 1:
-            print "Installing indexes ..."
+            self.stdout.write("Installing indexes ...\n")
         # Install SQL indicies for all newly created models
         for app_name, model_list in manifest.items():
             for model in model_list:
@@ -147,12 +149,13 @@ class Command(NoArgsCommand):
                     index_sql = connection.creation.sql_indexes_for_model(model, self.style)
                     if index_sql:
                         if verbosity >= 2:
-                            print "Installing index for %s.%s model" % (app_name, model._meta.object_name)
+                            self.stdout.write("Installing index for %s.%s model\n" %
+                                                (app_name, model._meta.object_name))
                         try:
                             for sql in index_sql:
                                 cursor.execute(sql)
                         except Exception, e:
-                            sys.stderr.write("Failed to install index for %s.%s model: %s\n" % \
+                            self.stderr.write("Failed to install index for %s.%s model: %s\n" % \
                                                 (app_name, model._meta.object_name, e))
                             transaction.rollback_unless_managed(using=db)
                         else:
