updated for version 7.0044
diff --git a/src/buffer.c b/src/buffer.c
index 4579a64..dc28caf 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -608,7 +608,8 @@
 	free_buf_options(buf, TRUE);
     }
 #ifdef FEAT_EVAL
-    vars_clear(&buf->b_vars);		/* free all internal variables */
+    vars_clear(&buf->b_vars.dv_hashtab); /* free all internal variables */
+    hash_init(&buf->b_vars.dv_hashtab);
 #endif
 #ifdef FEAT_USR_CMDS
     uc_clear(&buf->b_ucmds);		/* clear local user commands */
@@ -1626,7 +1627,11 @@
     buf->b_wininfo->wi_win = curwin;
 
 #ifdef FEAT_EVAL
-    vars_init(&buf->b_vars);		/* init internal variables */
+    init_var_dict(&buf->b_vars, &buf->b_bufvar);    /* init b: variables */
+#endif
+#ifdef FEAT_SYN_HL
+    hash_init(&buf->b_keywtab);
+    hash_init(&buf->b_keywtab_ic);
 #endif
 
     buf->b_fname = buf->b_sfname;