diff --git a/src/if_py_both.h b/src/if_py_both.h
index b658ce3..777e7da 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -1521,6 +1521,25 @@
 }
 
     static int
+set_option_value_err(key, numval, stringval, opt_flags)
+    char_u	*key;
+    int		numval;
+    char_u	*stringval;
+    int		opt_flags;
+{
+    char_u	*errmsg;
+
+    if ((errmsg = set_option_value(key, numval, stringval, opt_flags)))
+    {
+	if (VimTryEnd())
+	    return FAIL;
+	PyErr_SetVim((char *)errmsg);
+	return FAIL;
+    }
+    return OK;
+}
+
+    static int
 set_option_value_for(key, numval, stringval, opt_flags, opt_type, from)
     char_u	*key;
     int		numval;
@@ -1532,6 +1551,7 @@
     win_T	*save_curwin = NULL;
     tabpage_T	*save_curtab = NULL;
     buf_T	*save_curbuf = NULL;
+    int		r = 0;
 
     VimTryStart();
     switch (opt_type)
@@ -1545,16 +1565,22 @@
 		PyErr_SetVim("Problem while switching windows.");
 		return -1;
 	    }
-	    set_option_value(key, numval, stringval, opt_flags);
+	    r = set_option_value_err(key, numval, stringval, opt_flags);
 	    restore_win(save_curwin, save_curtab);
+	    if (r == FAIL)
+		return -1;
 	    break;
 	case SREQ_BUF:
 	    switch_buffer(&save_curbuf, (buf_T *)from);
-	    set_option_value(key, numval, stringval, opt_flags);
+	    r = set_option_value_err(key, numval, stringval, opt_flags);
 	    restore_buffer(save_curbuf);
+	    if (r == FAIL)
+		return -1;
 	    break;
 	case SREQ_GLOBAL:
-	    set_option_value(key, numval, stringval, opt_flags);
+	    r = set_option_value_err(key, numval, stringval, opt_flags);
+	    if (r == FAIL)
+		return -1;
 	    break;
     }
     return VimTryEnd();
@@ -1611,6 +1637,7 @@
     if (flags & SOPT_BOOL)
     {
 	int	istrue = PyObject_IsTrue(valObject);
+
 	if (istrue == -1)
 	    return -1;
 	r = set_option_value_for(key, istrue, NULL,
