diff --git a/src/dosinst.c b/src/dosinst.c
index 5b05598..7025eb6 100644
--- a/src/dosinst.c
+++ b/src/dosinst.c
@@ -291,16 +291,17 @@
 {
     char	*bp = *destination;
     size_t	indir_l = strlen(installdir);
-    char	*cp = bp + indir_l;
+    char	*cp;
     char	*tmpname;
     char	*farname;
 
     /*
      * No action needed if exe not found or not in this directory.
      */
-    if (bp == NULL
-	    || strnicmp(bp, installdir, indir_l) != 0
-	    || strchr("/\\", *cp++) == NULL
+    if (bp == NULL || strnicmp(bp, installdir, indir_l) != 0)
+	return;
+    cp = bp + indir_l;
+    if (strchr("/\\", *cp++) == NULL
 	    || strchr(cp, '\\') != NULL
 	    || strchr(cp, '/') != NULL)
 	return;
diff --git a/src/search.c b/src/search.c
index 4b3f853..df7067b 100644
--- a/src/search.c
+++ b/src/search.c
@@ -4732,18 +4732,14 @@
     VIsual_active = TRUE;
     VIsual_mode = 'v';
 
-    if (VIsual_active)
+    redraw_curbuf_later(INVERTED);	/* update the inversion */
+    if (*p_sel == 'e')
     {
-	redraw_curbuf_later(INVERTED);	/* update the inversion */
-	if (*p_sel == 'e')
-	{
-	    /* Correction for exclusive selection depends on the direction. */
-	    if (forward && LTOREQ_POS(VIsual, curwin->w_cursor))
-		inc_cursor();
-	    else if (!forward && LTOREQ_POS(curwin->w_cursor, VIsual))
-		inc(&VIsual);
-	}
-
+	/* Correction for exclusive selection depends on the direction. */
+	if (forward && LTOREQ_POS(VIsual, curwin->w_cursor))
+	    inc_cursor();
+	else if (!forward && LTOREQ_POS(curwin->w_cursor, VIsual))
+	    inc(&VIsual);
     }
 
 #ifdef FEAT_FOLDING
diff --git a/src/version.c b/src/version.c
index 641d802..aa17e0a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -784,6 +784,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    886,
+/**/
     885,
 /**/
     884,
