updated for version 7.0179
diff --git a/src/misc2.c b/src/misc2.c
index c3f2b37..f5b13e7 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -1426,13 +1426,15 @@
 }
 
 /*
- * replacement for free() that ignores NULL pointers
+ * Replacement for free() that ignores NULL pointers.
+ * Also skip free() when exiting for sure, this helps when we caught a deadly
+ * signal that was caused by a crash in free().
  */
     void
 vim_free(x)
     void *x;
 {
-    if (x != NULL)
+    if (x != NULL && !really_exiting)
     {
 #ifdef MEM_PROFILE
 	mem_pre_free(&x);