diff --git a/ChangeLog b/ChangeLog
index 73280676aa02ef8665d99234399af9bce341ff18..045f87250a91b2aa1eccdac190638651c1fe795a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,7 @@
 	* src/color.c (color_update): Strip things bare to see the sameness.
 	* src/color.c (found_in_list): Factor out this triple repetition.
 	* src/color.c (color_update): Rename a variable for conciseness.
+	* src/color.c (nfreeregex): Elide this function, now used just once.
 
 GNU nano 2.5.3 - 2016.02.25
 
diff --git a/src/color.c b/src/color.c
index 0905617d3d8eba6664abe86da1218f4fe46488a7..542ed76cdfe8849afa13e17ad647e9801a2a9742 100644
--- a/src/color.c
+++ b/src/color.c
@@ -139,16 +139,6 @@ void color_init(void)
     }
 }
 
-/* Clean up a regex we previously compiled. */
-void nfreeregex(regex_t **r)
-{
-    assert(r != NULL);
-
-    regfree(*r);
-    free(*r);
-    *r = NULL;
-}
-
 /* Try to match the given shibboleth string with one of the regexes in
  * the list starting at head.  Return TRUE upon success. */
 bool found_in_list(regexlisttype *head, const char *shibboleth)
@@ -167,8 +157,11 @@ bool found_in_list(regexlisttype *head, const char *shibboleth)
 	if (regexec(item->ext, shibboleth, 0, NULL, 0) == 0)
 	    return TRUE;
 
-	if (not_compiled)
-	    nfreeregex(&item->ext);
+	if (not_compiled) {
+	    regfree(item->ext);
+	    free(item->ext);
+	    item->ext = NULL;
+	}
     }
 
     return FALSE;