diff --git a/src/option.c b/src/option.c
index 97c0aa5..389ab6e 100644
--- a/src/option.c
+++ b/src/option.c
@@ -3165,6 +3165,34 @@
     options[findoption((char_u *)name)].def_val[VI_DEFAULT] = (char_u *)val;
 }
 
+#if defined(EXITFREE) || defined(PROTO)
+/*
+ * Free all options.
+ */
+    void
+free_all_options()
+{
+    int		i;
+
+    for (i = 0; !istermoption(&options[i]); i++)
+    {
+	if (options[i].indir == PV_NONE)
+	{
+	    /* global option: free value and default value. */
+	    if (options[i].flags & P_ALLOCED && options[i].var != NULL)
+		free_string_option(*(char_u **)options[i].var);
+	    if (options[i].flags & P_DEF_ALLOCED)
+		free_string_option(options[i].def_val[VI_DEFAULT]);
+	}
+	else if (options[i].var != VAR_WIN
+		&& (options[i].flags & P_STRING))
+	    /* buffer-local option: free global value */
+	    free_string_option(*(char_u **)options[i].var);
+    }
+}
+#endif
+
+
 /*
  * Initialize the options, part two: After getting Rows and Columns and
  * setting 'term'.
@@ -8001,8 +8029,6 @@
     void
 clear_termoptions()
 {
-    struct vimoption   *p;
-
     /*
      * Reset a few things before clearing the old options. This may cause
      * outputting a few things that the terminal doesn't understand, but the
@@ -8028,6 +8054,14 @@
 #endif
 	stoptermcap();			/* stop termcap mode */
 
+    free_termoptions();
+}
+
+    void
+free_termoptions()
+{
+    struct vimoption   *p;
+
     for (p = &options[0]; p->fullname != NULL; p++)
 	if (istermoption(p))
 	{
