  static char *readpipe(int fd, char *ctxnum, char **path)
  {
  	char ctx, *nextpath = NULL;
-@@ -5795,7 +5821,7 @@ static void populate(char *path, char *lastname)
+@@ -5864,7 +5890,7 @@ static void populate(char *path, char *lastname)
  }
 
  #ifndef NOFIFO

 #endif
 }

@@ -6477,7 +6509,7 @@ static bool browse(char *ipath, const char *session, int pkey)
 	pEntry pent;
 	enum action sel;
 	struct stat sb;
-	int r = -1, presel, selstartid = 0, selendid = 0;
+	int r = -1, presel, selstartid = 0, selendid = 0, previewkey = 0;
 	const uchar_t opener_flags = (cfg.cliopener ? F_CLI : (F_NOTRACE | F_NOSTDIN | F_NOWAIT));
 	bool watch = FALSE;
 	ino_t inode = 0;
@@ -6743,7 +6775,7 @@ nochange:
 					move_cursor(r, 1);
 #ifndef NOFIFO
 				else if ((event.bstate == BUTTON1_PRESSED) && !g_state.fifomode)

 				continue;
 			default: /* SEL_LOCK */
 				lock_terminal();
@@ -7660,6 +7705,7 @@ nochange:
			cd = FALSE;
 			goto begin;
 		}
+run_plugin:
 		case SEL_PLUGIN:
 			/* Check if directory is accessible */
 			if (!xdiraccess(plgpath)) {
@@ -7685,6 +7731,12 @@ nochange:
 					goto nochange;
 				}

