diff --git a/util/nvramtool/input_file.c b/util/nvramtool/input_file.c
index 38214d9..1520930 100644
--- a/util/nvramtool/input_file.c
+++ b/util/nvramtool/input_file.c
@@ -88,8 +88,8 @@
 	list = NULL;
 	p = &list;
 
-	compile_reg_exprs(REG_EXTENDED | REG_NEWLINE, 2, blank_or_comment_regex,
-			  &blank_or_comment, assignment_regex, &assignment);
+	compile_reg_expr(REG_EXTENDED | REG_NEWLINE, blank_or_comment_regex, &blank_or_comment);
+	compile_reg_expr(REG_EXTENDED | REG_NEWLINE, assignment_regex, &assignment);
 
 	/* each iteration processes one line from input file */
 	for (line_num = 1; get_input_file_line(f, line, LINE_BUF_SIZE) == OK; line_num++) {	/* skip comments and blank lines */
@@ -142,7 +142,8 @@
 		p = &item->next;
 	}
 
-	free_reg_exprs(2, &blank_or_comment, &assignment);
+	regfree(&blank_or_comment);
+	regfree(&assignment);
 	return list;
 }
 
diff --git a/util/nvramtool/layout_file.c b/util/nvramtool/layout_file.c
index 51b332c..535554f 100644
--- a/util/nvramtool/layout_file.c
+++ b/util/nvramtool/layout_file.c
@@ -262,14 +262,13 @@
  ****************************************************************************/
 static void process_layout_file(FILE * f)
 {
-	compile_reg_exprs(REG_EXTENDED | REG_NEWLINE, 7,
-			  blank_or_comment_regex, &blank_or_comment_expr,
-			  start_entries_regex, &start_entries_expr,
-			  entries_line_regex, &entries_line_expr,
-			  start_enums_regex, &start_enums_expr,
-			  enums_line_regex, &enums_line_expr,
-			  start_checksums_regex, &start_checksums_expr,
-			  checksum_line_regex, &checksum_line_expr);
+	compile_reg_expr(REG_EXTENDED | REG_NEWLINE, blank_or_comment_regex, &blank_or_comment_expr);
+	compile_reg_expr(REG_EXTENDED | REG_NEWLINE, start_entries_regex, &start_entries_expr);
+	compile_reg_expr(REG_EXTENDED | REG_NEWLINE, entries_line_regex, &entries_line_expr);
+	compile_reg_expr(REG_EXTENDED | REG_NEWLINE, start_enums_regex, &start_enums_expr);
+	compile_reg_expr(REG_EXTENDED | REG_NEWLINE, enums_line_regex, &enums_line_expr);
+	compile_reg_expr(REG_EXTENDED | REG_NEWLINE, start_checksums_regex, &start_checksums_expr);
+	compile_reg_expr(REG_EXTENDED | REG_NEWLINE, checksum_line_regex, &checksum_line_expr);
 	line_num = 1;
 	skip_past_start(f);
 
@@ -322,10 +321,13 @@
 	 */
 	skip_remaining_lines(f);
 
-	free_reg_exprs(7, &blank_or_comment_expr, &start_entries_expr,
-		       &entries_line_expr, &start_enums_expr,
-		       &enums_line_expr, &start_checksums_expr,
-		       &checksum_line_expr);
+	regfree(&blank_or_comment_expr);
+	regfree(&start_entries_expr);
+	regfree(&entries_line_expr);
+	regfree(&start_enums_expr);
+	regfree(&enums_line_expr);
+	regfree(&start_checksums_expr);
+	regfree(&checksum_line_expr);
 }
 
 /****************************************************************************
diff --git a/util/nvramtool/reg_expr.c b/util/nvramtool/reg_expr.c
index e737504..7d1adbe 100644
--- a/util/nvramtool/reg_expr.c
+++ b/util/nvramtool/reg_expr.c
@@ -33,50 +33,20 @@
 #include "reg_expr.h"
 
 /****************************************************************************
- * compile_reg_exprs
+ * compile_reg_expr
  *
- * Compile a bunch of regular expressions.
+ * Compile a regular expression.
  ****************************************************************************/
-void compile_reg_exprs(int cflags, int num_exprs,
-		       /* const char *expr1, regex_t *reg1, */ ...)
+void compile_reg_expr(int cflags, const char *expr, regex_t *reg)
 {
 	static const size_t ERROR_BUF_SIZE = 256;
 	char error_msg[ERROR_BUF_SIZE];
-	va_list ap;
-	regex_t *reg;
-	const char *expr;
-	int i, result;
+	int result;
 
-	va_start(ap, num_exprs);
-
-	for (i = 0; i < num_exprs; i++) {
-		expr = va_arg(ap, const char *);
-		reg = va_arg(ap, regex_t *);
-
-		if ((result = regcomp(reg, expr, cflags)) != 0) {
-			regerror(result, reg, error_msg, ERROR_BUF_SIZE);
-			fprintf(stderr, "%s: %s\n", prog_name, error_msg);
-			exit(1);
-		}
+	if ((result = regcomp(reg, expr, cflags)) != 0) {
+		regerror(result, reg, error_msg, ERROR_BUF_SIZE);
+		fprintf(stderr, "%s: %s\n", prog_name, error_msg);
+		exit(1);
 	}
-
-	va_end(ap);
 }
 
-/****************************************************************************
- * free_reg_exprs
- *
- * Destroy a bunch of previously compiled regular expressions.
- ****************************************************************************/
-void free_reg_exprs(int num_exprs, /* regex_t *reg1, */ ...)
-{
-	va_list ap;
-	int i;
-
-	va_start(ap, num_exprs);
-
-	for (i = 0; i < num_exprs; i++)
-		regfree(va_arg(ap, regex_t *));
-
-	va_end(ap);
-}
diff --git a/util/nvramtool/reg_expr.h b/util/nvramtool/reg_expr.h
index 1b1657f..c93215b 100644
--- a/util/nvramtool/reg_expr.h
+++ b/util/nvramtool/reg_expr.h
@@ -34,8 +34,6 @@
 #include <regex.h>
 #include "common.h"
 
-void compile_reg_exprs(int cflags, int num_exprs,
-		       /* const char *expr1, regex_t *reg1, */ ...);
-void free_reg_exprs(int num_exprs, /* regex_t *reg1, */ ...);
+void compile_reg_expr(int cflags, const char *expr, regex_t *reg);
 
 #endif				/* REG_EXPR_H */
