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,
