updated for version 7.3.023
Problem:    External program may hang when it tries to write to the tty.
Solution:   Don't close the slave tty until after the child exits. (Nikola
            Knezevic)
diff --git a/src/os_unix.c b/src/os_unix.c
index b0e0f02..150bdad 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -4168,7 +4168,6 @@
 # ifdef FEAT_GUI
 		if (pty_master_fd >= 0)
 		{
-		    close(pty_slave_fd);	/* close slave side of pty */
 		    fromshell_fd = pty_master_fd;
 		    toshell_fd = dup(pty_master_fd);
 		}
@@ -4637,6 +4636,14 @@
 		    break;
 	    }
 
+# ifdef FEAT_GUI
+	    /* Close slave side of pty.  Only do this after the child has
+	     * exited, otherwise the child may hang when it tries to write on
+	     * the pty. */
+	    if (pty_master_fd >= 0)
+		close(pty_slave_fd);
+# endif
+
 	    /* Make sure the child that writes to the external program is
 	     * dead. */
 	    if (wpid > 0)
diff --git a/src/version.c b/src/version.c
index 9db3fce..6b7742e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    23,
+/**/
     22,
 /**/
     21,