diff --git a/src/files.c b/src/files.c
index e244252d44fa3361393b7d4ddcc4354f0fa9390d..1d0b11e8229807c782e3e2d0e34cd638fee96cec 100644
--- a/src/files.c
+++ b/src/files.c
@@ -577,52 +577,53 @@ void do_insertfile(
 		execute = !execute;
 		continue;
 	    }
-
-	    if (execute)
-		execute_command(answer);
-	    else {
 #endif
-		answer = mallocstrassn(answer, real_dir_from_tilde(answer));
 
 #ifdef ENABLE_MULTIBUFFER
-		if (!ISSET(MULTIBUFFER)) {
+	    if (!ISSET(MULTIBUFFER)) {
 #endif
-		    /* If we're not inserting into a new buffer,
-		     * partition the filestruct so that it contains no
-		     * text and hence looks like a new buffer, and set
-		     * edittop to the top of the partition. */
-		    filepart = partition_filestruct(current, current_x,
+		/* If we're not inserting into a new buffer, partition
+		 * the filestruct so that it contains no text and hence
+		 * looks like a new buffer, and set edittop to the top
+		 * of the partition. */
+		filepart = partition_filestruct(current, current_x,
 			current, current_x);
-		    edittop = fileage;
+		edittop = fileage;
 #ifdef ENABLE_MULTIBUFFER
-		}
+	    }
 #endif
 
+#ifndef NANO_SMALL
+	    if (execute)
+		execute_command(answer);
+	    else {
+#endif
+		answer = mallocstrassn(answer, real_dir_from_tilde(answer));
 		load_buffer(answer);
+#ifndef NANO_SMALL
+	    }
+#endif
 
 #ifdef ENABLE_MULTIBUFFER
-		if (!ISSET(MULTIBUFFER))
+	    if (!ISSET(MULTIBUFFER))
 #endif
-		{
-		    filestruct *top_save = fileage;
+	    {
+		filestruct *top_save = fileage;
 
-		    /* If we're not inserting into a new buffer,
-		     * unpartition the filestruct so that it contains
-		     * all the text again.  Note that we've replaced the
-		     * non-text originally in the partition with the
-		     * text in the inserted file. */
-		    unpartition_filestruct(filepart);
+		/* If we're not inserting into a new buffer, unpartition
+		 * the filestruct so that it contains all the text
+		 * again.  Note that we've replaced the non-text
+		 * originally in the partition with the text in the
+		 * inserted file/executed command output. */
+		unpartition_filestruct(filepart);
 
-		    /* Renumber starting with the beginning line of the
-		     * old partition. */
-		    renumber(top_save);
+		/* Renumber starting with the beginning line of the old
+		 * partition. */
+		renumber(top_save);
 
-		    /* Set edittop back to what it was before. */
-		    edittop = edittop_save;
-		}
-#ifndef NANO_SMALL
+		/* Set edittop back to what it was before. */
+		edittop = edittop_save;
 	    }
-#endif
 
 #ifdef ENABLE_MULTIBUFFER
 	    if (ISSET(MULTIBUFFER)) {