diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 657c772..4ddfbe4 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -335,9 +335,8 @@
 get_maxbacktrace_level(void)
 {
     char	*p, *q;
-    int		maxbacktrace = 1;
+    int		maxbacktrace = 0;
 
-    maxbacktrace = 0;
     if (sourcing_name != NULL)
     {
 	p = (char *)sourcing_name;
diff --git a/src/json.c b/src/json.c
index b4ebe74..aa168ec 100644
--- a/src/json.c
+++ b/src/json.c
@@ -539,7 +539,6 @@
     char_u	*p;
     int		c;
     long	nr;
-    char_u	buf[NUMBUFLEN];
 
     if (res != NULL)
 	ga_init2(&ga, 1, 200);
@@ -617,6 +616,7 @@
 		    if (res != NULL)
 		    {
 #ifdef FEAT_MBYTE
+			char_u	buf[NUMBUFLEN];
 			buf[utf_char2bytes((int)nr, buf)] = NUL;
 			ga_concat(&ga, buf);
 #else
diff --git a/src/misc1.c b/src/misc1.c
index ddd9a07..9fa8578 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -1197,7 +1197,7 @@
 			    int	    i;
 			    int	    l;
 
-			    for (i = 0; p[i] != NUL && i < lead_len; i += l)
+			    for (i = 0; i < lead_len && p[i] != NUL; i += l)
 			    {
 				l = (*mb_ptr2len)(p + i);
 				if (vim_strnsize(p, i + l) > repl_size)
diff --git a/src/ops.c b/src/ops.c
index 0584877..983d9d0 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -5709,7 +5709,7 @@
 	if (buf1 == NULL)
 	    goto theend;
 	ptr = buf1;
-	if (negative && (!visual || (visual && was_positive)))
+	if (negative && (!visual || was_positive))
 	{
 	    *ptr++ = '-';
 	}
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index 6d06a12..5e073ee 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -5515,14 +5515,9 @@
     int		add_off = 0;
     int		toplevel = start->c == NFA_MOPEN;
 #ifdef NFA_REGEXP_DEBUG_LOG
-    FILE	*debug = fopen(NFA_REGEXP_DEBUG_LOG, "a");
-
-    if (debug == NULL)
-    {
-	EMSG2(_("(NFA) COULD NOT OPEN %s !"), NFA_REGEXP_DEBUG_LOG);
-	return FALSE;
-    }
+    FILE	*debug;
 #endif
+
     /* Some patterns may take a long time to match, especially when using
      * recursive_regmatch(). Allow interrupting them with CTRL-C. */
     fast_breakcheck();
@@ -5533,6 +5528,14 @@
 	return FALSE;
 #endif
 
+#ifdef NFA_REGEXP_DEBUG_LOG
+    debug = fopen(NFA_REGEXP_DEBUG_LOG, "a");
+    if (debug == NULL)
+    {
+	EMSG2(_("(NFA) COULD NOT OPEN %s !"), NFA_REGEXP_DEBUG_LOG);
+	return FALSE;
+    }
+#endif
     nfa_match = FALSE;
 
     /* Allocate memory for the lists of nodes. */
diff --git a/src/version.c b/src/version.c
index adbb46a..4bd5f7e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1780,
+/**/
     1779,
 /**/
     1778,
