diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c
index a1902fe..416829d 100644
--- a/src/test/regress/pg_regress.c
+++ b/src/test/regress/pg_regress.c
@@ -80,7 +80,7 @@ static char *encoding = NULL;
 static _stringlist *schedulelist = NULL;
 static _stringlist *extra_tests = NULL;
 static char *temp_instance = NULL;
-static char *temp_config = NULL;
+static _stringlist *temp_configs = NULL;
 static bool nolocale = false;
 static bool use_existing = false;
 static char *hostname = NULL;
@@ -2117,7 +2117,7 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc
 				split_to_stringlist(strdup(optarg), ", ", &extraroles);
 				break;
 			case 19:
-				temp_config = strdup(optarg);
+				add_stringlist_item(&temp_configs, optarg);
 				break;
 			case 20:
 				use_existing = true;
@@ -2249,8 +2249,9 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc
 		fputs("log_temp_files = 128kB\n", pg_conf);
 		fputs("max_prepared_transactions = 2\n", pg_conf);
 
-		if (temp_config != NULL)
+		for (sl = temp_configs; sl != NULL; sl = sl->next)
 		{
+			char	   *temp_config = sl->str;
 			FILE	   *extra_conf;
 			char		line_buf[1024];
 
