diff --git a/src/eval.c b/src/eval.c
index ca9389f..2e5b876 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3884,11 +3884,6 @@
 	    ++hi;
 	return cat_prefix_varname('w', hi->hi_key);
     }
-    if (wdone == ht->ht_used)
-    {
-	++wdone;
-	return (char_u *)"w:ownsyntax";
-    }
 
 #ifdef FEAT_WINDOWS
     /* t: variables */
@@ -18758,18 +18753,6 @@
 	tv = &atv;
     }
 
-    if (STRCMP(name, "w:ownsyntax") == 0)
-    {
-	atv.v_type = VAR_NUMBER;
-#ifdef FEAT_SYN_HL
-	atv.vval.v_number = (curwin->w_s != &curwin->w_buffer->b_s) ? 1 : 0;
-#else
-	atv.vval.v_number = 0;
-#endif
-	tv = &atv;
-    }
-
-
     /*
      * Check for user-defined variables.
      */
@@ -19292,6 +19275,7 @@
 
 /*
  * Get the string value of a (global/local) variable.
+ * Note: see get_tv_string() for how long the pointer remains valid.
  * Returns NULL when it doesn't exist.
  */
     char_u *
diff --git a/src/syntax.c b/src/syntax.c
index 370bc76..2b70c6d 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -3537,8 +3537,7 @@
 	    syntax_clear(curwin->w_s);
 	    if (curwin->w_s == &curwin->w_buffer->b_s)
 		do_unlet((char_u *)"b:current_syntax", TRUE);
-	    else
-		do_unlet((char_u *)"w:current_syntax", TRUE);
+	    do_unlet((char_u *)"w:current_syntax", TRUE);
 
 	}
     }
@@ -6157,6 +6156,9 @@
 ex_ownsyntax(eap)
     exarg_T	*eap;
 {
+    char_u	*old_value;
+    char_u	*new_value;
+
     if (curwin->w_s == &curwin->w_buffer->b_s)
     {
 	curwin->w_s = (synblock_T *)alloc(sizeof(synblock_T));
@@ -6170,7 +6172,26 @@
 	clear_string_option(&curwin->w_s->b_p_spl);
 #endif
     }
+
+    /* save value of b:current_syntax */
+    old_value = get_var_value((char_u *)"b:current_syntax");
+    if (old_value != NULL)
+	old_value = vim_strsave(old_value);
+
+    /* Apply the "syntax" autocommand event, this finds and loads the syntax
+     * file. */
     apply_autocmds(EVENT_SYNTAX, eap->arg, curbuf->b_fname, TRUE, curbuf);
+
+    /* move value of b:current_syntax to w:current_syntax */
+    new_value = get_var_value((char_u *)"b:current_syntax");
+    set_internal_string_var((char_u *)"w:current_syntax", new_value);
+
+    /* restore value of b:current_syntax */
+    if (old_value != NULL)
+    {
+	set_internal_string_var((char_u *)"b:current_syntax", old_value);
+	vim_free(old_value);
+    }
 }
 
     int
diff --git a/src/window.c b/src/window.c
index d6aae7c..e878d9f 100644
--- a/src/window.c
+++ b/src/window.c
@@ -4410,7 +4410,10 @@
 #ifdef FEAT_SYN_HL
     /* free independent synblock */
     if (wp->w_s != &wp->w_buffer->b_s)
+    {
+	syntax_clear(wp->w_s);
 	vim_free(wp->w_s);
+    }
 #endif
 
 #ifdef FEAT_AUTOCMD
