--- lparser.c	(lua 5.2.2)
+++ lparser.c	(8/18/2013)
@@ -895,12 +895,15 @@
   }
 }
 
+static void throw_newline_error(LexState *ls) {
+  luaX_syntaxerror(ls, "dangerous formatting: '(' starts a new line inside a multi-call statement.");
+}
 
 static void suffixedexp (LexState *ls, expdesc *v) {
   /* suffixedexp ->
        primaryexp { '.' NAME | '[' exp ']' | ':' NAME funcargs | funcargs } */
   FuncState *fs = ls->fs;
-  int line = ls->linenumber;
+  int line = ls->linenumber, funcall=0, danger=0;;
   primaryexp(ls, v);
   for (;;) {
     switch (ls->t.token) {
@@ -918,12 +921,18 @@
       case ':': {  /* `:' NAME funcargs */
         expdesc key;
         luaX_next(ls);
+        if(danger && funcall) throw_newline_error(ls);
+        funcall=1;
         checkname(ls, &key);
         luaK_self(fs, v, &key);
         funcargs(ls, v, line);
         break;
       }
-      case '(': case TK_STRING: case '{': {  /* funcargs */
+      case '(': 
+        if(ls->linenumber != ls->lastline) danger=1; 
+      case TK_STRING: case '{': {  /* funcargs */
+        if(danger && funcall) throw_newline_error(ls);
+        funcall=1;
         luaK_exp2nextreg(fs, v);
         funcargs(ls, v, line);
         break;
