diff --git a/src/if_tcl.c b/src/if_tcl.c
index 2775221..47e734b 100644
--- a/src/if_tcl.c
+++ b/src/if_tcl.c
@@ -1281,7 +1281,7 @@
 {
     int		err, nobjs, idx;
     char_u	*option;
-    int		isnum;
+    getoption_T	gov;
     long	lval;
     char_u	*sval;
     Tcl_Obj	*resobj;
@@ -1298,15 +1298,16 @@
 
     option = (char_u *)Tcl_GetStringFromObj(objv[objn], NULL);
     ++objn;
-    isnum = get_option_value(option, &lval, &sval, 0);
+    gov = get_option_value(option, &lval, &sval, 0);
     err = TCL_OK;
-    switch (isnum)
+    switch (gov)
     {
-	case 0:
+	case gov_string:
 	    Tcl_SetResult(interp, (char *)sval, TCL_VOLATILE);
 	    vim_free(sval);
 	    break;
-	case 1:
+	case gov_bool:
+	case gov_number:
 	    resobj = Tcl_NewLongObj(lval);
 	    Tcl_SetObjResult(interp, resobj);
 	    break;
@@ -1316,7 +1317,7 @@
     }
     if (nobjs == 2)
     {
-	if (isnum)
+	if (gov != gov_string)
 	{
 	    sval = NULL;    // avoid compiler warning
 	    err = Tcl_GetIndexFromObj(interp, objv[objn], optkw, "", 0, &idx);
@@ -1326,17 +1327,19 @@
 		err = Tcl_GetLongFromObj(interp, objv[objn], &lval);
 	    }
 	    else
-	    switch (idx)
 	    {
-		case OPT_ON:
-		    lval = 1;
-		    break;
-		case OPT_OFF:
-		    lval = 0;
-		    break;
-		case OPT_TOGGLE:
-		    lval = !lval;
-		    break;
+		switch (idx)
+		{
+		    case OPT_ON:
+			lval = 1;
+			break;
+		    case OPT_OFF:
+			lval = 0;
+			break;
+		    case OPT_TOGGLE:
+			lval = !lval;
+			break;
+		}
 	    }
 	}
 	else
