diff --git a/inc/meta-config b/inc/meta-config
index c8789bf816..e5f902d1dd 100644
--- a/inc/meta-config
+++ b/inc/meta-config
@@ -86,6 +86,14 @@ function merge_config_file {
     local matchgroup=$2
     local configfile=$3
 
+    # note, configfile might be a variable (note the iniset, etc
+    # created in the mega-awk below is "eval"ed too, so we just leave
+    # it alone.
+    local real_configfile=$(eval echo $configfile)
+    if [ ! -f $real_configfile ]; then
+        touch $real_configfile
+    fi
+
     get_meta_section $file $matchgroup $configfile | \
     $CONFIG_AWK_CMD -v configfile=$configfile '
         BEGIN {
diff --git a/tests/test_meta_config.sh b/tests/test_meta_config.sh
index 3ec65bf9b0..a04c081854 100755
--- a/tests/test_meta_config.sh
+++ b/tests/test_meta_config.sh
@@ -8,6 +8,8 @@ TOP=$(cd $(dirname "$0")/.. && pwd)
 source $TOP/inc/ini-config
 source $TOP/inc/meta-config
 
+set -e
+
 # check_result() tests and reports the result values
 # check_result "actual" "expected"
 function check_result {