       token[1] isnt ';' and token[0] in SINGLE_CLOSERS and
       not (token[0] is 'TERMINATOR' and @tag(i + 1) in EXPRESSION_CLOSE) and
       not (token[0] is 'ELSE' and starter isnt 'THEN') and
-      not (token[0] in ['CATCH', 'FINALLY'] and starter in ['->', '=>'])
+      not (token[0] in ['CATCH', 'FINALLY'] and starter in ['->', '=>']) or
+      token[0] in CALL_CLOSERS and @tokens[i - 1].newLine
 
     action = (token, i) ->
       @tokens.splice (if @tag(i - 1) is ',' then i - 1 else i), 0, outdent


# Tokens that end a line.
LINEBREAKS       = ['TERMINATOR', 'INDENT', 'OUTDENT']

      #     .g b
      #     .h a
      #
      if inImplicitCall() and tag in CALL_CLOSERS
        if prevTag is 'OUTDENT'
          endImplicitCall()
          return forward(1)
        if prevToken.newLine
          endAllImplicitCalls()
          return forward(1)

      stackTop()[2].sameLine = no if inImplicitObject() and tag in LINEBREAKS

