#3584: ignore trailing newlines when placing the caret for a SyntaxError location.
diff --git a/Lib/traceback.py b/Lib/traceback.py
index 86a2c06..8d28afc 100644
--- a/Lib/traceback.py
+++ b/Lib/traceback.py
@@ -189,7 +189,7 @@
         if badline is not None:
             lines.append('    %s\n' % badline.strip())
             if offset is not None:
-                caretspace = badline[:offset].lstrip()
+                caretspace = badline.rstrip('\n')[:offset].lstrip()
                 # non-space whitespace (likes tabs) must be kept for alignment
                 caretspace = ((c.isspace() and c or ' ') for c in caretspace)
                 # only three spaces to account for offset1 == pos 0