diff --git a/django/test/simple.py b/django/test/simple.py
index bf0219d..3bcfec1 100644
--- a/django/test/simple.py
+++ b/django/test/simple.py
@@ -1,4 +1,6 @@
+import logging
 import unittest as real_unittest
+import warnings
 
 from django.conf import settings
 from django.core.exceptions import ImproperlyConfigured
@@ -365,7 +367,28 @@ class DjangoTestSuiteRunner(object):
         self.setup_test_environment()
         suite = self.build_suite(test_labels, extra_tests)
         old_config = self.setup_databases()
+        if self.verbosity > 0:
+            # duplicate some of the steps taken in logging configuration
+            # to insure that DeprecationWarnings are displayed on sys.stderr
+            # during testing regardless of the Python default in >2.6
+            if logging._warnings_showwarning is None:
+                old_captureWarnings = False
+                logging.captureWarnings(True)
+            else:
+                old_captureWarnings = True
+            warnings.simplefilter("default", DeprecationWarning)
+            new_filter = warnings.filters[0]
+            logger = logging.getLogger('py.warnings')
+            handler = logging.StreamHandler()
+            logger.addHandler(handler)
         result = self.run_suite(suite)
+        if self.verbosity > 0:
+            # make every effort to restore global logging and warning state
+            if warnings.filters[0] == new_filter:
+                warnings.filters.pop(0)
+            logger.removeHandler(handler)
+            if not old_captureWarnings:
+                logging.captureWarnings(False)
         self.teardown_databases(old_config)
         self.teardown_test_environment()
         return self.suite_result(suite, result)
diff --git a/tests/regressiontests/logging_tests/tests.py b/tests/regressiontests/logging_tests/tests.py
index f983894..b3d9f3b 100644
--- a/tests/regressiontests/logging_tests/tests.py
+++ b/tests/regressiontests/logging_tests/tests.py
@@ -93,24 +93,31 @@ class WarningLoggerTests(TestCase):
     and captured to the logging system
     """
     def setUp(self):
+        # this convoluted setup is to avoid printing this deprecation to
+        # stderr during test running - as the test runner forces deprecations
+        # to be displayed at the global py.warnings level
         self.logger = logging.getLogger('py.warnings')
-        self.old_stream = self.logger.handlers[0].stream
+        self.outputs = []
+        self.old_streams = []
+        for handler in self.logger.handlers:
+            self.old_streams.append(handler.stream)
+            self.outputs.append(StringIO())
+            handler.stream = self.outputs[-1]
 
     def tearDown(self):
-        self.logger.handlers[0].stream = self.old_stream
+        for i, handler in enumerate(self.logger.handlers):
+            self.logger.handlers[i].stream = self.old_streams[i]
 
     @override_settings(DEBUG=True)
     def test_warnings_capture(self):
-        output = StringIO()
-        self.logger.handlers[0].stream = output
         warnings.warn('Foo Deprecated', DeprecationWarning)
-        self.assertTrue('Foo Deprecated' in force_text(output.getvalue()))
+        output = force_text(self.outputs[0].getvalue())
+        self.assertTrue('Foo Deprecated' in output)
 
     def test_warnings_capture_debug_false(self):
-        output = StringIO()
-        self.logger.handlers[0].stream = output
         warnings.warn('Foo Deprecated', DeprecationWarning)
-        self.assertFalse('Foo Deprecated' in force_text(output.getvalue()))
+        output = force_text(self.outputs[0].getvalue())
+        self.assertFalse('Foo Deprecated' in output)
 
 
 class CallbackFilterTest(TestCase):
diff --git a/tests/regressiontests/test_runner/deprecation_app/__init__.py b/tests/regressiontests/test_runner/deprecation_app/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tests/regressiontests/test_runner/deprecation_app/models.py b/tests/regressiontests/test_runner/deprecation_app/models.py
new file mode 100644
index 0000000..71a8362
--- /dev/null
+++ b/tests/regressiontests/test_runner/deprecation_app/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/tests/regressiontests/test_runner/deprecation_app/tests.py b/tests/regressiontests/test_runner/deprecation_app/tests.py
new file mode 100644
index 0000000..e676c3e
--- /dev/null
+++ b/tests/regressiontests/test_runner/deprecation_app/tests.py
@@ -0,0 +1,9 @@
+import warnings
+
+from django.test import TestCase
+
+class DummyTest(TestCase):
+    def test_warn(self):
+        warnings.warn("warning from test", DeprecationWarning)
+
+
diff --git a/tests/regressiontests/test_runner/tests.py b/tests/regressiontests/test_runner/tests.py
index c723f16..5e58388 100644
--- a/tests/regressiontests/test_runner/tests.py
+++ b/tests/regressiontests/test_runner/tests.py
@@ -261,6 +261,25 @@ class Sqlite3InMemoryTestDbs(unittest.TestCase):
                 db.connections = old_db_connections
 
 
+class DeprecationDisplayTest(AdminScriptTestCase):
+    # tests for 19546
+    def setUp(self):
+        settings = {'INSTALLED_APPS': '("regressiontests.test_runner.deprecation_app",)' }
+        self.write_settings('settings.py', sdict=settings)
+
+    def tearDown(self):
+        self.remove_settings('settings.py')
+
+    def test_runner_deprecation_verbosity_default(self):
+        args = ['test', '--settings=regressiontests.settings']
+        out, err = self.run_django_admin(args)
+        self.assertTrue("DeprecationWarning: warning from test" in err)
+
+    def test_runner_deprecation_verbosity_zero(self):
+        args = ['test', '--settings=regressiontests.settings', '--verbosity=0']
+        out, err = self.run_django_admin(args)
+        self.assertFalse("DeprecationWarning: warning from test" in err)
+
 class AutoIncrementResetTest(TransactionTestCase):
     """
     Here we test creating the same model two times in different test methods,
