1Index: src/edit.c
2===================================================================
3--- src/edit.c	(revision 57762)
4+++ src/edit.c	(working copy)
5@@ -321,7 +321,7 @@
6     int		inserted_space = FALSE;     /* just inserted a space */
7     int		replaceState = REPLACE;
8     int		nomove = FALSE;		    /* don't move cursor on return */
9-
10+    int		orig_count = count;	    /* for autoindent calculation */
11     /* Remember whether editing was restarted after CTRL-O. */
12     did_restart_edit = restart_edit;
13 
14@@ -416,7 +416,7 @@
15 	    AppendCharToRedobuff(cmdchar);
16 	    if (cmdchar == 'g')		    /* "gI" command */
17 		AppendCharToRedobuff('I');
18-	    else if (cmdchar == 'r')	    /* "r<CR>" command */
19+	    else if (cmdchar == 'r' && !Unix2003_compat)	    /* "r<CR>" command */
20 		count = 1;		    /* insert only one <CR> */
21 	}
22     }
23@@ -1286,6 +1286,8 @@
24 		goto doESCkey;
25 	    }
26 #endif
27+	    if (Unix2003_compat && (cmdchar == 'r') && (orig_count > 1))
28+		did_ai = TRUE;
29 	    if (ins_eol(c) && !p_im)
30 		goto doESCkey;	    /* out of memory */
31 	    auto_format(FALSE, FALSE);
32