diff --git a/ChangeLog b/ChangeLog
index c65439c6c76538ac72f581fa5ff8bdf123551ed7..17244711526e91394d810b4be0db1e1f60149d0e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,8 @@
 	* src/color.c (color_update): Rename a variable for conciseness.
 	* src/color.c (nfreeregex): Elide this function, now used just once.
 	* src/nano.h: Rename a struct element for aptness and contrast.
+	* src/nano.h: Rename another element, because it refers not just
+	to file extensions, but also to header lines and magic strings.
 
 GNU nano 2.5.3 - 2016.02.25
 
diff --git a/src/color.c b/src/color.c
index f1f6a351d7922cf99709a393e3edf6830f05f230..eea26e16589fccba4b75d65968abd7b09694361a 100644
--- a/src/color.c
+++ b/src/color.c
@@ -147,20 +147,20 @@ bool found_in_list(regexlisttype *head, const char *shibboleth)
     bool not_compiled;
 
     for (item = head; item != NULL; item = item->next) {
-        not_compiled = (item->ext == NULL);
+        not_compiled = (item->rgx == NULL);
 
 	if (not_compiled) {
-	    item->ext = (regex_t *)nmalloc(sizeof(regex_t));
-	    regcomp(item->ext, fixbounds(item->full_regex), REG_EXTENDED);
+	    item->rgx = (regex_t *)nmalloc(sizeof(regex_t));
+	    regcomp(item->rgx, fixbounds(item->full_regex), REG_EXTENDED);
 	}
 
-	if (regexec(item->ext, shibboleth, 0, NULL, 0) == 0)
+	if (regexec(item->rgx, shibboleth, 0, NULL, 0) == 0)
 	    return TRUE;
 
 	if (not_compiled) {
-	    regfree(item->ext);
-	    free(item->ext);
-	    item->ext = NULL;
+	    regfree(item->rgx);
+	    free(item->rgx);
+	    item->rgx = NULL;
 	}
     }
 
diff --git a/src/global.c b/src/global.c
index f31c2e3db00729edf054c3f284995c87005b8181..8303d4fcf9b2718327cb7e02c8a979669556689e 100644
--- a/src/global.c
+++ b/src/global.c
@@ -1627,9 +1627,9 @@ int strtomenu(const char *input)
 void free_list_item(regexlisttype *dropit)
 {
     free(dropit->full_regex);
-    if (dropit->ext != NULL)
-	regfree(dropit->ext);
-    free(dropit->ext);
+    if (dropit->rgx != NULL)
+	regfree(dropit->rgx);
+    free(dropit->rgx);
     free(dropit);
 }
 #endif
diff --git a/src/nano.h b/src/nano.h
index 034cd13b837ae0f43545ee1cd5b4acdea44cf155..5f8eeb4d61df25dc466e15c94eeda6a188ff8288 100644
--- a/src/nano.h
+++ b/src/nano.h
@@ -231,10 +231,10 @@ typedef struct colortype {
 typedef struct regexlisttype {
     char *full_regex;
 	/* A regex string to match things that imply a certain syntax. */
-    regex_t *ext;
-	/* The compiled regexes. */
+    regex_t *rgx;
+	/* The compiled regex. */
     struct regexlisttype *next;
-	/* Next set of regexes. */
+	/* The next regex. */
 } regexlisttype;
 
 typedef struct syntaxtype {
diff --git a/src/rcfile.c b/src/rcfile.c
index 1b4d19e698cead36b0b3727705b0fb1d16ae3e26..6b03e6acc68f8a8607808ccbf0fa31dacd57e7d7 100644
--- a/src/rcfile.c
+++ b/src/rcfile.c
@@ -375,7 +375,7 @@ void parse_syntax(char *ptr)
 	/* Save the extension regex if it's valid. */
 	if (nregcomp(fileregptr, REG_NOSUB)) {
 	    newext->full_regex = mallocstrcpy(NULL, fileregptr);
-	    newext->ext = NULL;
+	    newext->rgx = NULL;
 
 	    if (endext == NULL)
 		endsyntax->extensions = newext;
@@ -896,7 +896,7 @@ void parse_header_exp(char *ptr)
 	/* Save the regex string if it's valid. */
 	if (nregcomp(regexstring, 0)) {
 	    newheader->full_regex = mallocstrcpy(NULL, regexstring);
-	    newheader->ext = NULL;
+	    newheader->rgx = NULL;
 
 	    if (endheader == NULL)
 		endsyntax->headers = newheader;
@@ -961,7 +961,7 @@ void parse_magic_exp(char *ptr)
 	/* Save the regex string if it's valid. */
 	if (nregcomp(regexstring, REG_NOSUB)) {
 	    newmagic->full_regex = mallocstrcpy(NULL, regexstring);
-	    newmagic->ext = NULL;
+	    newmagic->rgx = NULL;
 
 	    if (endmagic == NULL)
 		endsyntax->magics = newmagic;