   comment_token: ->
     return false unless comment: @match COMMENT, 1
     @line += (comment.match(MULTILINER) or []).length
-    lines: comment.replace(COMMENT_CLEANER, '').split(MULTILINER)
-    @token 'COMMENT', compact lines
-    @token 'TERMINATOR', "\n"
+    lines: compact comment.replace(COMMENT_CLEANER, '').split(MULTILINER)
+    i: @tokens.length - 1
+    if @unfinished()
+      i -= 1 while @tokens[i] and not include LINE_BREAK, @tokens[i][0]
+    @tokens.splice(i + 1, 0, ['COMMENT', lines, @line], ['TERMINATOR', '\n', @line])
     @i += comment.length
     true
 

    return false unless m: @chunk.match(regex)
    if m then m[index] else false

# There are no exensions to the core lexer by default.
Lexer.extensions: []


    prev: @prev(2)
    size: indent.match(LAST_DENTS).reverse()[0].match(LAST_DENT)[1].length
    next_character: @chunk.match(MULTI_DENT)[4]
    no_newlines: next_character is '.' or @unfinished()
    if size is @indent
      return @suppress_newlines() if no_newlines
      return @newline_token(indent)
