Fixed: after ":ownsyntax perl" and ":e" syntax was cleared in other window.
diff --git a/src/window.c b/src/window.c
index e878d9f..239a809 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1176,7 +1176,8 @@
 
     newp->w_buffer = oldp->w_buffer;
 #ifdef FEAT_SYN_HL
-    newp->w_s = oldp->w_s;
+    /* TODO: use reference count? */
+    newp->w_s = &(oldp->w_buffer->b_s);
 #endif
     oldp->w_buffer->b_nwindows++;
     newp->w_cursor = oldp->w_cursor;
@@ -4408,18 +4409,13 @@
 #endif /* FEAT_GUI */
 
 #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);
-    }
+    reset_synblock(wp);  /* free independent synblock */
 #endif
 
 #ifdef FEAT_AUTOCMD
     if (wp != aucmd_win)
 #endif
-    win_remove(wp, tp);
+	win_remove(wp, tp);
     vim_free(wp);
 
 #ifdef FEAT_AUTOCMD