diff --git a/CHANGES.txt b/CHANGES.txt
index 85abb6b5772cfc97be430d933aab9b2263d82aaf..bd1ef16ce3e4048a49544373a0ab763fa919c9f2 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -13,6 +13,7 @@ Config
 ------
 
 * Fixed error due to variables at namelist level
+* Fixed recognition of native variables to ignore invalid variable names
 
 Tools
 -----
diff --git a/mkexp b/mkexp
index c46462178f1baf794917fef7ab95fb39f72782e7..d6146cf8e1c5b492fb937a276ec93f3001c20520 100755
--- a/mkexp
+++ b/mkexp
@@ -226,8 +226,11 @@ def format_namelist(section, group=None, default_value=''):
 def format_vars(section, key, log, fmt):
 
     def replace(match):
-        log.add(match.group(1))
-        return fmt%match.group(1)
+        result = match.group(1)
+        if result.isidentifier():
+            log.add(result)
+            return fmt%result
+        return result
     def transform(string):
         return re.sub(r'\$\{(\w+)\}', replace, string)