diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 50829be..9ea2fd6 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -4960,8 +4960,7 @@
     else
     {
 	delim = *cmd;		// get the delimiter
-	if (delim)
-	    ++cmd;		// skip delimiter if there is one
+	++cmd;			// skip delimiter if there is one
 	pat = cmd;		// remember start of pattern
 	cmd = skip_regexp_ex(cmd, delim, magic_isset(), &eap->arg, NULL, NULL);
 	if (cmd[0] == delim)		    // end delimiter found
diff --git a/src/misc1.c b/src/misc1.c
index 6dbad3f..af83c10 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -1576,7 +1576,7 @@
 		c = (int)STRLEN(var);
 		// if var[] ends in a path separator and tail[] starts
 		// with it, skip a character
-		if (*var != NUL && after_pathsep(dst, dst + c)
+		if (after_pathsep(dst, dst + c)
 #if defined(BACKSLASH_IN_FILENAME) || defined(AMIGA)
 			&& dst[-1] != ':'
 #endif
diff --git a/src/optionstr.c b/src/optionstr.c
index 2accd3d..3de23ba 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -1249,8 +1249,7 @@
 		int x2 = -1;
 		int x3 = -1;
 
-		if (*p != NUL)
-		    p += mb_ptr2len(p);
+		p += mb_ptr2len(p);
 		if (*p != NUL)
 		    x2 = *p++;
 		if (*p != NUL)
diff --git a/src/quickfix.c b/src/quickfix.c
index e38011b..0b44dca 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -85,7 +85,7 @@
     char_u	*qf_title;	// title derived from the command that created
 				// the error list or set by setqflist
     typval_T	*qf_ctx;	// context set by setqflist/setloclist
-    callback_T  qftf_cb;	// 'quickfixtextfunc' callback function
+    callback_T  qf_qftf_cb;	// 'quickfixtextfunc' callback function
 
     struct dir_stack_T	*qf_dir_stack;
     char_u		*qf_directory;
@@ -2337,10 +2337,10 @@
     }
     else
 	to_qfl->qf_ctx = NULL;
-    if (from_qfl->qftf_cb.cb_name != NULL)
-	copy_callback(&to_qfl->qftf_cb, &from_qfl->qftf_cb);
+    if (from_qfl->qf_qftf_cb.cb_name != NULL)
+	copy_callback(&to_qfl->qf_qftf_cb, &from_qfl->qf_qftf_cb);
     else
-	to_qfl->qftf_cb.cb_name = NULL;
+	to_qfl->qf_qftf_cb.cb_name = NULL;
 
     if (from_qfl->qf_count)
 	if (copy_loclist_entries(from_qfl, to_qfl) == FAIL)
@@ -3938,7 +3938,7 @@
     VIM_CLEAR(qfl->qf_title);
     free_tv(qfl->qf_ctx);
     qfl->qf_ctx = NULL;
-    free_callback(&qfl->qftf_cb);
+    free_callback(&qfl->qf_qftf_cb);
     qfl->qf_id = 0;
     qfl->qf_changedtick = 0L;
 }
@@ -4660,9 +4660,9 @@
     // If 'quickfixtextfunc' is set, then use the user-supplied function to get
     // the text to display. Use the local value of 'quickfixtextfunc' if it is
     // set.
-    if (qfl->qftf_cb.cb_name != NULL)
-	cb = &qfl->qftf_cb;
-    if (cb != NULL && cb->cb_name != NULL)
+    if (qfl->qf_qftf_cb.cb_name != NULL)
+	cb = &qfl->qf_qftf_cb;
+    if (cb->cb_name != NULL)
     {
 	typval_T	args[1];
 	dict_T		*d;
@@ -7105,11 +7105,11 @@
 {
     int		status;
 
-    if (qfl->qftf_cb.cb_name != NULL)
+    if (qfl->qf_qftf_cb.cb_name != NULL)
     {
 	typval_T	tv;
 
-	put_callback(&qfl->qftf_cb, &tv);
+	put_callback(&qfl->qf_qftf_cb, &tv);
 	status = dict_add_tv(retdict, "quickfixtextfunc", &tv);
 	clear_tv(&tv);
     }
@@ -7551,10 +7551,10 @@
 {
     callback_T	cb;
 
-    free_callback(&qfl->qftf_cb);
+    free_callback(&qfl->qf_qftf_cb);
     cb = get_callback(&di->di_tv);
     if (cb.cb_name != NULL && *cb.cb_name != NUL)
-	set_callback(&qfl->qftf_cb, &cb);
+	set_callback(&qfl->qf_qftf_cb, &cb);
 
     return OK;
 }
@@ -7737,7 +7737,7 @@
 		&& ctx->v_type != VAR_STRING && ctx->v_type != VAR_FLOAT)
 	    abort = abort || set_ref_in_item(ctx, copyID, NULL, NULL);
 
-	cb = &qi->qf_lists[i].qftf_cb;
+	cb = &qi->qf_lists[i].qf_qftf_cb;
 	abort = abort || set_ref_in_callback(cb, copyID);
     }
 
diff --git a/src/version.c b/src/version.c
index 40ed189..68b61f4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4750,
+/**/
     4749,
 /**/
     4748,
