diff --git a/ChangeLog b/ChangeLog
index fcd7091c664fb1ef673083d1ab6fe4c3770aa34d..a3ec7557161f08026917d1eb5810b6736334e772 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -68,7 +68,9 @@ CVS code -
   do_insertfile()
 	- Readd the NANO_SMALL #ifdef around the start_again: label to
 	  avoid a warning. (DLR)
-	- Simplify by reusing variables whereever possible. (DLR)
+	- Simplify by reusing variables whereever possible, and add a
+	  parameter execute to indicate whether or not to be in "Execute
+	  Command" mode. (DLR)
 - global.c:
   shortcut_init()
 	- Remove redundant NANO_SMALL #ifdef. (DLR)
@@ -171,6 +173,7 @@ CVS code -
 - nanorc.sample:
 	- Remove specific references to control key shortcuts other than
 	  XON and XOFF. (DLR)
+	- Add continue and goto to the "c-file" regexes. (DLR)
 - doc/man/fr/nano.1, doc/man/fr/nanorc.1:
 	- Updated manpage translations by Jean-Philippe Guérard.
 
@@ -256,7 +259,7 @@ GNU nano 1.3.4 - 2004.08.17
 	- Consolidate some if blocks to remove some redundant code.
 	  (David Benbennick)
 	- Fix warnings when compiling with ENABLE_NLS undefined and with
-	  -the fwritable-strings option. (David Benbennick)
+	  the fwritable-strings option. (David Benbennick)
 	- Add various #ifdefs to fix warnings and compilation problems
 	  when compiling with every option manually turned on, including
 	  NANO_SMALL. (David Benbennick)
diff --git a/doc/nanorc.sample b/doc/nanorc.sample
index 8ee3f37a10609425cc7230af1eedc39d58f1c76e..9c24442072332960bfb893a2676e7bcfa4f66b40 100644
--- a/doc/nanorc.sample
+++ b/doc/nanorc.sample
@@ -139,7 +139,7 @@
 # syntax "c-file" "\.(c|h)$"
 # color red "\<[A-Z_]{2,}\>" 
 # color green "\<(float|double|char|int|short|long|enum|void|static|const|struct|union|typedef|extern|signed|unsigned|inline)\>"
-# color brightyellow "\<(for|if|while|do|else|case|switch|break)\>"
+# color brightyellow "\<(for|if|while|do|else|case|switch|goto|continue|break)\>"
 # color brightcyan "^ *# *(define|undef|include|ifn?def|endif|elif|else|if)"
 ##
 ## You will in general want your comments and strings to come last,
diff --git a/src/files.c b/src/files.c
index a7684559be03ea2105fd1d1b5fd142981b8a78b8..e0a2ede6fbacf0a127ed66ca1256280521c93786 100644
--- a/src/files.c
+++ b/src/files.c
@@ -474,16 +474,19 @@ void load_buffer(const char *name)
 	load_file();
 }
 
-void do_insertfile(void)
+void do_insertfile(
+#ifndef NANO_SMALL
+	bool execute
+#else
+	void
+#endif
+	)
 {
     int i;
     const char *msg;
     char *ans = mallocstrcpy(NULL, "");
 	/* The last answer the user typed on the statusbar.  Saved for if
 	 * they do M-F or cancel the file browser. */
-#ifndef NANO_SMALL
-    bool extcmd = FALSE;
-#endif
 
     wrap_reset();
 
@@ -492,7 +495,7 @@ void do_insertfile(void)
 #endif
 
 #ifndef NANO_SMALL
-    if (extcmd) {
+    if (execute) {
 #ifdef ENABLE_MULTIBUFFER
 	if (ISSET(MULTIBUFFER))
 	    msg = N_("Command to execute in new buffer [from %s] ");
@@ -513,7 +516,7 @@ void do_insertfile(void)
 
     i = statusq(TRUE,
 #ifndef NANO_SMALL
-		extcmd ? extcmd_list :
+		execute ? extcmd_list :
 #endif
 		insertfile_list, ans,
 #ifndef NANO_SMALL
@@ -553,11 +556,11 @@ void do_insertfile(void)
 
 #ifndef NANO_SMALL
 	if (i == NANO_TOOTHERINSERT_KEY) {
-	    extcmd = !extcmd;
+	    execute = !execute;
 	    goto start_again;
 	}
 
-	if (extcmd)
+	if (execute)
 	    execute_command(answer);
 	else {
 #endif
@@ -600,7 +603,11 @@ void do_insertfile_void(void)
 	statusbar(_("Key illegal in non-multibuffer mode"));
     else
 #endif
-	do_insertfile();
+	do_insertfile(
+#ifndef NANO_SMALL
+		FALSE
+#endif
+		);
 
     display_main_list();
 }
@@ -1846,10 +1853,10 @@ int do_writeout(int exiting)
 	} else
 #endif /* !NANO_SMALL */
 	if (i == NANO_PREPEND_KEY) {
-	    append = append == 2 ? 0 : 2;
+	    append = (append == 2) ? 0 : 2;
 	    continue;
 	} else if (i == NANO_APPEND_KEY) {
-	    append = append == 1 ? 0 : 1;
+	    append = (append == 1) ? 0 : 1;
 	    continue;
 	}
 
diff --git a/src/proto.h b/src/proto.h
index ee27c60c297bd4f623fb2ebb0ddc98135bb26505..3038303521d4f2ad91dd7c74918b7c10b7134b8b 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -175,7 +175,13 @@ char *get_next_filename(const char *name);
 void execute_command(const char *command);
 #endif
 void load_buffer(const char *name);
-void do_insertfile(void);
+void do_insertfile(
+#ifndef NANO_SMALL
+	bool execute
+#else
+	void
+#endif
+	);
 void do_insertfile_void(void);
 #ifdef ENABLE_MULTIBUFFER
 openfilestruct *make_new_opennode(openfilestruct *prevnode);