updated for version 7.0008
diff --git a/src/option.c b/src/option.c
index 952a03e..5c7b780 100644
--- a/src/option.c
+++ b/src/option.c
@@ -5302,7 +5302,7 @@
     else if (varp == &p_popt)
 	errmsg = parse_list_options(p_popt, printer_opts, OPT_PRINT_NUM_OPTIONS);
 
-# ifdef FEAT_MBYTE
+# if defined(FEAT_MBYTE) && defined(FEAT_POSTSCRIPT)
     else if (varp == &p_pmfn)
 	errmsg = parse_list_options(p_pmfn, mbfont_opts, OPT_MBFONT_NUM_OPTIONS);
 # endif
@@ -6399,24 +6399,12 @@
     /* 'diff' */
     else if ((int *)varp == &curwin->w_p_diff)
     {
-	win_T	*wp;
-
-	if (!curwin->w_p_diff)
-	{
-	    /* When there is no window showing a diff for this buffer, remove
-	     * it from the diffs. */
-	    for (wp = firstwin; wp != NULL; wp = wp->w_next)
-		if (wp->w_buffer == curwin->w_buffer && wp->w_p_diff)
-		    break;
-	    if (wp == NULL)
-		diff_buf_delete(curwin->w_buffer);
-	}
-	else
-	    diff_buf_add(curwin->w_buffer);
-#ifdef FEAT_FOLDING
+	/* May add or remove the buffer from the list of diff buffers. */
+	diff_buf_adjust(curwin);
+# ifdef FEAT_FOLDING
 	if (foldmethodIsDiff(curwin))
 	    foldUpdateAll(curwin);
-#endif
+# endif
     }
 #endif
 
@@ -6521,8 +6509,11 @@
 	    /* Arabic requires a utf-8 encoding, inform the user if its not
 	     * set. */
 	    if (STRCMP(p_enc, "utf-8") != 0)
+	    {
+		msg_source(hl_attr(HLF_W));
 		MSG_ATTR(_("W17: Arabic requires UTF-8, do ':set encoding=utf-8'"),
 			hl_attr(HLF_W));
+	    }
 
 # ifdef FEAT_MBYTE
 	    /* set 'delcombine' */
@@ -6837,7 +6828,7 @@
 	if (p_uc && !old_value)
 	    ml_open_files();
     }
-#if defined(FEAT_MZSCHEME) && defined(FEAT_GUI)
+#ifdef MZSCHEME_GUI_THREADS
     else if (pp == &p_mzq)
 	mzvim_reset_timer();
 #endif