diff --git a/src/blob.c b/src/blob.c
index 6f42973..9b409f6 100644
--- a/src/blob.c
+++ b/src/blob.c
@@ -629,7 +629,7 @@
     if (b->bv_lock == 0)
 	b->bv_lock = VAR_LOCKED;
 
-    // Create one funccal_T for all eval_expr_typval() calls.
+    // Create one funccall_T for all eval_expr_typval() calls.
     fc = eval_expr_get_funccal(expr, &newtv);
 
     for (i = 0; i < b->bv_ga.ga_len; i++)
diff --git a/src/dict.c b/src/dict.c
index 1ce01c1..ccd0b5d 100644
--- a/src/dict.c
+++ b/src/dict.c
@@ -904,7 +904,7 @@
 eval_dict(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int literal)
 {
     int		evaluate = evalarg == NULL ? FALSE
-					 : evalarg->eval_flags & EVAL_EVALUATE;
+				       : (evalarg->eval_flags & EVAL_EVALUATE);
     dict_T	*d = NULL;
     typval_T	tvkey;
     typval_T	tv;
@@ -1359,7 +1359,7 @@
 	d_ret = rettv->vval.v_dict;
     }
 
-    // Create one funccal_T for all eval_expr_typval() calls.
+    // Create one funccall_T for all eval_expr_typval() calls.
     fc = eval_expr_get_funccal(expr, &newtv);
 
     int prev_lock = d->dv_lock;
diff --git a/src/list.c b/src/list.c
index 1bb63b0..ca43526 100644
--- a/src/list.c
+++ b/src/list.c
@@ -2401,7 +2401,7 @@
     if (l->lv_lock == 0)
 	l->lv_lock = VAR_LOCKED;
 
-    // Create one funccal_T for all eval_expr_typval() calls.
+    // Create one funccall_T for all eval_expr_typval() calls.
     fc = eval_expr_get_funccal(expr, &newtv);
 
     if (l->lv_first == &range_list_item)
@@ -3064,7 +3064,7 @@
     if (l == NULL)
 	return;
 
-    // Create one funccal_T for all eval_expr_typval() calls.
+    // Create one funccall_T for all eval_expr_typval() calls.
     fc = eval_expr_get_funccal(expr, rettv);
 
     prev_locked = l->lv_lock;
diff --git a/src/strings.c b/src/strings.c
index 2099794..7c868bf 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -902,7 +902,7 @@
     // set_vim_var_nr() doesn't set the type
     set_vim_var_type(VV_KEY, VAR_NUMBER);
 
-    // Create one funccal_T for all eval_expr_typval() calls.
+    // Create one funccall_T for all eval_expr_typval() calls.
     fc = eval_expr_get_funccal(expr, &newtv);
 
     ga_init2(&ga, sizeof(char), 80);
@@ -981,7 +981,7 @@
     else
 	copy_tv(&argvars[2], rettv);
 
-    // Create one funccal_T for all eval_expr_typval() calls.
+    // Create one funccall_T for all eval_expr_typval() calls.
     fc = eval_expr_get_funccal(expr, rettv);
 
     for ( ; *p != NUL; p += len)
diff --git a/src/structs.h b/src/structs.h
index 79c4ac6..55a859b 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -1896,7 +1896,7 @@
 				// funccal
     int		fc_copyID;	// for garbage collection
     garray_T	fc_ufuncs;	// list of ufunc_T* which keep a reference to
-				// "func"
+				// "fc_func"
 };
 
 // structure used as item in "fc_defer"
diff --git a/src/version.c b/src/version.c
index 018fcf5..0b3c80e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1459,
+/**/
     1458,
 /**/
     1457,
