The silencing of DeprecationWarning was not taking -3 into consideration. Since
Py3K warnings are DeprecationWarning by default this was causing -3 to
essentially be a no-op. Now DeprecationWarning is only silenced if -3 is not
used.

Closes issue #7700. Thanks Ezio Melotti and Florent Xicluna for patch help.
diff --git a/Lib/warnings.py b/Lib/warnings.py
index a88e7ba..70b3d43 100644
--- a/Lib/warnings.py
+++ b/Lib/warnings.py
@@ -383,8 +383,11 @@
 # Module initialization
 _processoptions(sys.warnoptions)
 if not _warnings_defaults:
-    for cls in (DeprecationWarning, PendingDeprecationWarning, ImportWarning):
-        simplefilter("ignore", category=cls, append=True)
+    silence = [ImportWarning, PendingDeprecationWarning]
+    if not sys.py3kwarning:  # Don't silence DeprecationWarning if -3 was used.
+        silence.append(DeprecationWarning)
+    for cls in silence:
+        simplefilter("ignore", category=cls)
     bytes_warning = sys.flags.bytes_warning
     if bytes_warning > 1:
         bytes_action = "error"