updated for version 7.0093
diff --git a/src/os_unix.c b/src/os_unix.c
index d27b05a..07645dc 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -2703,8 +2703,11 @@
     void
 mch_free_mem()
 {
-# if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK)
-    vim_free(signal_stack);
+# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
+    if (clip_star.owned)
+	clip_lose_selection(&clip_star);
+    if (clip_plus.owned)
+	clip_lose_selection(&clip_plus);
 # endif
 # if (defined(FEAT_X11) && defined(FEAT_XCLIPBOARD)) || defined(PROTO)
     if (xterm_Shell != (Widget)0)
@@ -2714,6 +2717,18 @@
     if (app_context != (XtAppContext)NULL)
 	XtDestroyApplicationContext(app_context);
 # endif
+# ifdef FEAT_X11
+    if (x11_display != NULL && x11_display != xterm_dpy)
+	XCloseDisplay(x11_display);
+# endif
+# if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK)
+    vim_free(signal_stack);
+    signal_stack = NULL;
+# endif
+# ifdef FEAT_TITLE
+    vim_free(oldtitle);
+    vim_free(oldicon);
+# endif
 }
 #endif