  				if (tmp[0] == '-' && tmp[1]) {
  					++tmp;
  					r = FALSE; /* Do not refresh dir after completion */
-@@ -8281,8 +8333,10 @@ static void cleanup(void)
+@@ -7740,7 +7792,13 @@ nochange:
+ 		case SEL_SHELL: // fallthrough
+ 		case SEL_LAUNCH: // fallthrough
+ 		case SEL_PROMPT:
++			if (g_state.previewer)
++				notify_fifo(FALSE, TRUE);
+ 			r = handle_cmd(sel, newpath);
++			if (g_state.previewer) {
++				pkey = previewkey;
++				goto run_plugin;
++			}
+
+ 			/* Continue in type-to-nav mode, if enabled */
+ 			if (cfg.filtermode)
+@@ -8282,8 +8340,10 @@ static void cleanup(void)
  	if (g_state.autofifo)
  		unlink(fifopath);
  #endif

 /* Non-persistent runtime states */
 static runstate g_state;

@@ -690,12 +694,13 @@ static const char * const messages[] = {
 #define NNN_FCOLORS 5
 #define NNNLVL      6
 #define NNN_PIPE    7

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

