updated for version 7.0063
diff --git a/src/option.c b/src/option.c
index b4593a7..1e94dc8 100644
--- a/src/option.c
+++ b/src/option.c
@@ -2029,7 +2029,7 @@
 			    (char_u *)NULL, PV_NONE,
 #endif
 			    {(char_u *)FALSE, (char_u *)0L}},
-    {"spelllang",   "spl",  P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA,
+    {"spelllang",   "spl",  P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_RBUF,
 #ifdef FEAT_SYN_HL
 			    (char_u *)&p_spl, PV_SPL,
 			    {(char_u *)"", (char_u *)0L}
@@ -2825,6 +2825,11 @@
     /* Must be before option_expand(), because that one needs vim_isIDc() */
     didset_options();
 
+#ifdef FEAT_SYN_HL
+    /* Use the current chartab for the generic chartab. */
+    init_spell_chartab();
+#endif
+
 #ifdef FEAT_LINEBREAK
     /*
      * initialize the table for 'breakat'.
@@ -5558,7 +5563,8 @@
 	    errmsg = e_invarg;
 	else
 	    check_mouse_termcode();
-	setmouse();	/* may switch it on again */
+	if (termcap_active)
+	    setmouse();		/* may switch it on again */
     }
 #endif
 
@@ -5656,7 +5662,7 @@
 #endif
 
 #ifdef FEAT_SYN_HL
-    /* When 'spellang' is set, load the wordlists. */
+    /* When 'spelllang' is set, load the wordlists. */
     else if (varp == &(curbuf->b_p_spl))
     {
 	errmsg = did_set_spelllang(curbuf);