updated for version 7.0-124
diff --git a/src/eval.c b/src/eval.c
index d32efaa..13c0bd6 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -10432,20 +10432,14 @@
 
     if (win != NULL && varname != NULL)
     {
+	/* Set curwin to be our win, temporarily.  Also set curbuf, so
+	 * that we can get buffer-local options. */
+	oldcurwin = curwin;
+	curwin = win;
+	curbuf = win->w_buffer;
+
 	if (*varname == '&')	/* window-local-option */
-	{
-	    /* Set curwin to be our win, temporarily.  Also set curbuf, so
-	     * that we can get buffer-local options. */
-	    oldcurwin = curwin;
-	    curwin = win;
-	    curbuf = win->w_buffer;
-
 	    get_option_tv(&varname, rettv, 1);
-
-	    /* restore previous notion of curwin */
-	    curwin = oldcurwin;
-	    curbuf = curwin->w_buffer;
-	}
 	else
 	{
 	    if (*varname == NUL)
@@ -10458,6 +10452,10 @@
 	    if (v != NULL)
 		copy_tv(&v->di_tv, rettv);
 	}
+
+	/* restore previous notion of curwin */
+	curwin = oldcurwin;
+	curbuf = curwin->w_buffer;
     }
 
     --emsg_off;
diff --git a/src/version.c b/src/version.c
index 5ebaecc..f148a35 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    124,
+/**/
     123,
 /**/
     122,