diff --git a/Lib/idlelib/Bindings.py b/Lib/idlelib/Bindings.py
index aae6106..06e215e 100644
--- a/Lib/idlelib/Bindings.py
+++ b/Lib/idlelib/Bindings.py
@@ -30,6 +30,8 @@
    ('Save _As...', '<<save-window-as-file>>'),
    ('Save Co_py As...', '<<save-copy-of-window-as-file>>'),
    None,
+   ('_Print window', '<<print-window>>'),
+   None,
    ('_Close', '<<close-window>>'),
    ('E_xit', '<<close-all-windows>>'),
   ]),
diff --git a/Lib/idlelib/IOBinding.py b/Lib/idlelib/IOBinding.py
index 729f29b..eb901dc 100644
--- a/Lib/idlelib/IOBinding.py
+++ b/Lib/idlelib/IOBinding.py
@@ -6,9 +6,11 @@
 #     which will only understand the local convention.
 
 import os
+import tempfile
 import tkFileDialog
 import tkMessageBox
 import re
+from configHandler import idleConf
 
 #$ event <<open-window-from-file>>
 #$ win <Control-o>
@@ -22,6 +24,10 @@
 #$ win <Alt-s>
 #$ unix <Control-x><Control-w>
 
+#$ event <<print-window>>
+#$ win <Control-p>
+#$ unix <Control-x><Control-p>
+
 #$ event <<save-copy-of-window-as-file>>
 #$ win <Alt-Shift-s>
 #$ unix <Control-x><w>
@@ -38,13 +44,15 @@
                                           self.save_as)
         self.__id_savecopy = self.text.bind("<<save-copy-of-window-as-file>>",
                                             self.save_a_copy)
-
+        self.__id_print = self.text.bind("<<print-window>>", self.print_window)
+        
     def close(self):
         # Undo command bindings
         self.text.unbind("<<open-window-from-file>>", self.__id_open)
         self.text.unbind("<<save-window>>", self.__id_save)
         self.text.unbind("<<save-window-as-file>>",self.__id_saveas)
         self.text.unbind("<<save-copy-of-window-as-file>>", self.__id_savecopy)
+        self.text.unbind("<<print-window>>", self.__id_print)
         # Break cycles
         self.editwin = None
         self.text = None
@@ -187,7 +195,40 @@
             tkMessageBox.showerror("I/O Error", str(msg),
                                    master=self.text)
             return 0
-
+ 
+    def print_window(self, event):
+        tempfilename = None
+        if self.get_saved():
+            filename = self.filename
+        else:
+            filename = tempfilename = tempfile.mktemp()
+            if not self.writefile(filename):
+                os.unlink(tempfilename)
+                return "break"
+        platform=os.name
+        printPlatform=1
+        if platform == 'posix': #posix platform
+            command = idleConf.GetOption('main','General','print-command-posix')
+            command = command + " 2>&1"
+        elif platform == 'nt': #win32 platform
+            command = idleConf.GetOption('main','General','print-command-win')
+        else: #no printing for this platform
+            printPlatform=0
+        if printPlatform:  #we can try to print for this platform
+            command = command % filename
+            pipe = os.popen(command, "r")
+            output = pipe.read().strip()
+            status = pipe.close()
+            if status:
+                output = "Printing failed (exit status 0x%x)\n" % status + output
+            if output:
+                output = "Printing command: %s\n" % repr(command) + output
+                tkMessageBox.showerror("Print status", output, master=self.text)
+        else:  #no printing for this platform
+            message="Printing is not enabled for this platform: %s" % platform 
+            tkMessageBox.showinfo("Print status", message, master=self.text)
+        return "break"
+    
     def fixlastline(self):
         c = self.text.get("end-2c")
         if c != '\n':
diff --git a/Lib/idlelib/config-keys.def b/Lib/idlelib/config-keys.def
index 8b38827..180d70e 100644
--- a/Lib/idlelib/config-keys.def
+++ b/Lib/idlelib/config-keys.def
@@ -26,12 +26,13 @@
 open-new-window=<Control-Key-n>
 open-window-from-file=<Control-Key-o>
 plain-newline-and-indent=<Control-Key-j>
+print-window=<Control-Key-p>
 redo=<Control-Shift-Key-z>
 remove-selection=<Key-Escape>
 save-copy-of-window-as-file=<Alt-Shift-Key-s>
 save-window-as-file=<Control-Shift-Key-s>
 save-window=<Control-Key-s>
-select-all=<Alt-Key-a>
+select-all=<Control-Key-a>
 toggle-auto-coloring=<Control-Key-slash>
 undo=<Control-Key-z>
 find=<Control-Key-f>
@@ -59,6 +60,7 @@
 open-new-window=<Control-Key-x><Control-Key-n>
 open-window-from-file=<Control-Key-x><Control-Key-f>
 plain-newline-and-indent=<Control-Key-j>
+print-window=<Control-x><Control-Key-p>
 python-docs=<Control-Key-h> 
 python-context-help=<Control-Shift-Key-h> 
 redo=<Alt-Key-z> <Meta-Key-z>
diff --git a/Lib/idlelib/config-main.def b/Lib/idlelib/config-main.def
index 01f0662..cd52b21 100644
--- a/Lib/idlelib/config-main.def
+++ b/Lib/idlelib/config-main.def
@@ -28,6 +28,8 @@
 
 [General]
 editor-on-startup= 1
+print-command-posix=lpr %s
+print-command-win=start /min notepad /p %s
 
 [EditorWindow]
 width= 80
diff --git a/Lib/idlelib/configHandler.py b/Lib/idlelib/configHandler.py
index 82bf6d2..1afd19e 100644
--- a/Lib/idlelib/configHandler.py
+++ b/Lib/idlelib/configHandler.py
@@ -507,6 +507,7 @@
             '<<open-new-window>>': ['<Control-n>'],
             '<<open-window-from-file>>': ['<Control-o>'],
             '<<plain-newline-and-indent>>': ['<Control-j>'],
+            '<<print-window>>': ['<Control-p>'],
             '<<redo>>': ['<Control-y>'],
             '<<remove-selection>>': ['<Escape>'],
             '<<save-copy-of-window-as-file>>': ['<Alt-Shift-s>'],
