check after comments, too (#13832)
diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py
index 7089872..58b3203 100644
--- a/Lib/test/test_compile.py
+++ b/Lib/test/test_compile.py
@@ -470,6 +470,8 @@
         self.assertInvalidSingle('a = 13\nb = 187')
         self.assertInvalidSingle('del x\ndel y')
         self.assertInvalidSingle('f()\ng()')
+        self.assertInvalidSingle('f()\n# blah\nblah()')
+        self.assertInvalidSingle('f()\nxy # blah\nblah()')
 
 def test_main():
     support.run_unittest(TestSpecifics)
diff --git a/Parser/parsetok.c b/Parser/parsetok.c
index c4b7690..7beb735 100644
--- a/Parser/parsetok.c
+++ b/Parser/parsetok.c
@@ -234,13 +234,23 @@
             char *cur = tok->cur;
             char c = *tok->cur;
 
-            while (c == ' ' || c == '\t' || c == '\n' || c == '\014')
-                c = *++cur;
+            for (;;) {
+                while (c == ' ' || c == '\t' || c == '\n' || c == '\014')
+                    c = *++cur;
 
-            if (c && c != '#') {
-                err_ret->error = E_BADSINGLE;
-                PyNode_Free(n);
-                n = NULL;
+                if (!c)
+                    break;
+
+                if (c != '#') {
+                    err_ret->error = E_BADSINGLE;
+                    PyNode_Free(n);
+                    n = NULL;
+                    break;
+                }
+
+                /* Suck up comment. */
+                while (c && c != '\n')
+                    c = *++cur;
             }
         }
 #endif