diff --git a/src/files.c b/src/files.c
index f993e8d1e11674353f35cc886922ad565ce6c414..cd24143d78c7823a063cde333a95a9e2b317809d 100644
--- a/src/files.c
+++ b/src/files.c
@@ -540,13 +540,16 @@ void do_insertfile(
 #endif
 		"./");
 
+	/* If we're in multibuffer mode and file insertion mode, and the
+	 * filename is blank, open a new buffer instead of canceling. */
+	if (i == -1 || (i == -2
 #ifdef ENABLE_MULTIBUFFER
-	/* If we're in multibuffer mode and the filename is blank, open
-	 * a new buffer instead of canceling. */
-	if (i == -1 || (i == -2 && !ISSET(MULTIBUFFER)))
-#else
-	if (i < 0)
+		&& !ISSET(MULTIBUFFER)
+#endif
+#ifndef NANO_SMALL
+		&& !execute
 #endif
+		))
 	{
 	    statusbar(_("Cancelled"));
 	    break;