updated for version 7.0225
diff --git a/src/misc2.c b/src/misc2.c
index 44b0517..dece0d9 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -964,8 +964,10 @@
 
 #ifdef FEAT_WINDOWS
     /* close all tabs and windows */
-    do_cmdline_cmd((char_u *)"tabonly!");
-    do_cmdline_cmd((char_u *)"only!");
+    if (first_tabpage->tp_next != NULL)
+	do_cmdline_cmd((char_u *)"tabonly!");
+    if (firstwin != lastwin)
+	do_cmdline_cmd((char_u *)"only!");
 #endif
 
 # if defined(FEAT_SPELL)
@@ -1077,6 +1079,10 @@
 
     reset_last_sourcing();
 
+#ifdef FEAT_WINDOWS
+    vim_free(first_tabpage);
+#endif
+
 # ifdef UNIX
     /* Machine-specific free. */
     mch_free_mem();