updated for version 7.3.1309
Problem:    When a script defines a function the flag to wait for the user to
            hit enter is reset.
Solution:   Restore the flag. (Yasuhiro Matsumoto)  Except when the user was
            typing the function.
diff --git a/src/eval.c b/src/eval.c
index 2a2817e..b9d739d 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -21108,6 +21108,7 @@
     int		j;
     int		c;
     int		saved_did_emsg;
+    int		saved_wait_return = need_wait_return;
     char_u	*name = NULL;
     char_u	*p;
     char_u	*arg;
@@ -21439,7 +21440,10 @@
     for (;;)
     {
 	if (KeyTyped)
+	{
 	    msg_scroll = TRUE;
+	    saved_wait_return = FALSE;
+	}
 	need_wait_return = FALSE;
 	sourcing_lnum_off = sourcing_lnum;
 
@@ -21750,6 +21754,7 @@
     vim_free(fudi.fd_newkey);
     vim_free(name);
     did_emsg |= saved_did_emsg;
+    need_wait_return |= saved_wait_return;
 }
 
 /*
diff --git a/src/os_unix.c b/src/os_unix.c
index 2223faf..37cc3a7 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -6129,7 +6129,6 @@
 }
 #endif
 
-
 /*
  * Return TRUE if the string "p" contains a wildcard that mch_expandpath() can
  * expand.
diff --git a/src/version.c b/src/version.c
index 5a200ae..a8d7def 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1309,
+/**/
     1308,
 /**/
     1307,