diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 2ff124b..fdac405 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -2473,6 +2473,7 @@
 test_null_list()		List	null value for testing
 test_null_partial()		Funcref	null value for testing
 test_null_string()		String	null value for testing
+test_option_not_set({name})    none	reset flag indicating option was set
 test_override({expr}, {val})    none	test with Vim internal overrides
 test_settime({expr})		none	set current time for testing
 timer_info([{id}])		List	information about timers
@@ -8737,6 +8738,15 @@
 test_null_string()					*test_null_string()*
 		Return a String that is null. Only useful for testing.
 
+test_option_not_set({name})				*test_option_not_set()*
+		Reset the flag that indicates option {name} was set.  Thus it
+		looks like it still has the default value. Use like this: >
+			set ambiwidth=double
+			call test_option_not_set('ambiwidth')
+<		Now the 'ambiwidth' option behaves like it was never changed,
+		even though the value is "double".
+		Only to be used for testing!
+
 test_override({name}, {val})				*test_override()*
 		Overrides certain parts of Vims internal processing to be able
 		to run tests. Only to be used for testing Vim!
diff --git a/src/evalfunc.c b/src/evalfunc.c
index ff54589..69a674d 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -415,6 +415,7 @@
 static void f_test_alloc_fail(typval_T *argvars, typval_T *rettv);
 static void f_test_autochdir(typval_T *argvars, typval_T *rettv);
 static void f_test_feedinput(typval_T *argvars, typval_T *rettv);
+static void f_test_option_not_set(typval_T *argvars, typval_T *rettv);
 static void f_test_override(typval_T *argvars, typval_T *rettv);
 static void f_test_garbagecollect_now(typval_T *argvars, typval_T *rettv);
 static void f_test_ignore_error(typval_T *argvars, typval_T *rettv);
@@ -922,6 +923,7 @@
     {"test_null_list",	0, 0, f_test_null_list},
     {"test_null_partial", 0, 0, f_test_null_partial},
     {"test_null_string", 0, 0, f_test_null_string},
+    {"test_option_not_set", 1, 1, f_test_option_not_set},
     {"test_override",    2, 2, f_test_override},
     {"test_settime",	1, 1, f_test_settime},
 #ifdef FEAT_TIMERS
@@ -13062,7 +13064,25 @@
 }
 
 /*
- * "test_disable({name}, {val})" function
+ * "test_option_not_set({name})" function
+ */
+    static void
+f_test_option_not_set(typval_T *argvars, typval_T *rettv UNUSED)
+{
+    char_u *name = (char_u *)"";
+
+    if (argvars[0].v_type != VAR_STRING)
+	EMSG(_(e_invarg));
+    else
+    {
+	name = get_tv_string_chk(&argvars[0]);
+	if (reset_option_was_set(name) == FAIL)
+	    EMSG2(_(e_invarg2), name);
+    }
+}
+
+/*
+ * "test_override({name}, {val})" function
  */
     static void
 f_test_override(typval_T *argvars, typval_T *rettv UNUSED)
diff --git a/src/option.c b/src/option.c
index f47549d..818e691 100644
--- a/src/option.c
+++ b/src/option.c
@@ -12480,13 +12480,17 @@
 /*
  * Reset the flag indicating option "name" was set.
  */
-    void
+    int
 reset_option_was_set(char_u *name)
 {
     int idx = findoption(name);
 
     if (idx >= 0)
+    {
 	options[idx].flags &= ~P_WAS_SET;
+	return OK;
+    }
+    return FAIL;
 }
 
 /*
diff --git a/src/proto/option.pro b/src/proto/option.pro
index 679329d..b65cb45 100644
--- a/src/proto/option.pro
+++ b/src/proto/option.pro
@@ -55,7 +55,7 @@
 void vimrc_found(char_u *fname, char_u *envname);
 void change_compatible(int on);
 int option_was_set(char_u *name);
-void reset_option_was_set(char_u *name);
+int reset_option_was_set(char_u *name);
 int can_bs(int what);
 void save_file_ff(buf_T *buf);
 int file_ff_differs(buf_T *buf, int ignore_empty);
diff --git a/src/version.c b/src/version.c
index aa6d099..81fc685 100644
--- a/src/version.c
+++ b/src/version.c
@@ -795,6 +795,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    386,
+/**/
     385,
 /**/
     384,
