diff --git a/Lib/cmd.py b/Lib/cmd.py
index 5847f76..29ea460 100644
--- a/Lib/cmd.py
+++ b/Lib/cmd.py
@@ -137,7 +137,7 @@
                         if not len(line):
                             line = 'EOF'
                         else:
-                            line = line[:-1] # chop \n
+                            line = line.rstrip('\r\n')
                 line = self.precmd(line)
                 stop = self.onecmd(line)
                 stop = self.postcmd(stop, line)
diff --git a/Lib/test/test_cmd.py b/Lib/test/test_cmd.py
index 19ee52e..c46fec8 100644
--- a/Lib/test/test_cmd.py
+++ b/Lib/test/test_cmd.py
@@ -8,6 +8,9 @@
 import cmd
 import sys
 from test import test_support
+import re
+import unittest
+import StringIO
 
 class samplecmdclass(cmd.Cmd):
     """
@@ -168,9 +171,33 @@
     def do_exit(self, arg):
         return True
 
+
+class TestAlternateInput(unittest.TestCase):
+
+    class simplecmd(cmd.Cmd):
+
+        def do_print(self, args):
+            print >>self.stdout, args
+
+        def do_EOF(self, args):
+            return True
+
+    def test_file_with_missing_final_nl(self):
+        input = StringIO.StringIO("print test\nprint test2")
+        output = StringIO.StringIO()
+        cmd = self.simplecmd(stdin=input, stdout=output)
+        cmd.use_rawinput = False
+        cmd.cmdloop()
+        self.assertMultiLineEqual(output.getvalue(),
+            ("(Cmd) test\n"
+             "(Cmd) test2\n"
+             "(Cmd) "))
+
+
 def test_main(verbose=None):
     from test import test_cmd
     test_support.run_doctest(test_cmd, verbose)
+    test_support.run_unittest(TestAlternateInput)
 
 def test_coverage(coverdir):
     trace = test_support.import_module('trace')
diff --git a/Misc/ACKS b/Misc/ACKS
index 2d15ca5..c75fced 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -188,6 +188,7 @@
 Arnaud Delobelle
 Erik Demaine
 Roger Dev
+Catherine Devlin
 Raghuram Devarakonda
 Scott Dial
 Toby Dickenson
diff --git a/Misc/NEWS b/Misc/NEWS
index ea60e3b..a7928c0 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -18,6 +18,9 @@
 Library
 -------
 
+- Issue #8620: when a Cmd is fed input that reaches EOF without a final
+  newline, it no longer truncates the last character of the last command line.
+
 - Issue #6213: Implement getstate() and setstate() methods of utf-8-sig and
   utf-16 incremental encoders.
 
