diff --git a/compconfig b/compconfig
index e83db5212b0a6f9e90427670d07fb79cdf8dc890..e5ef1bde9f906492bf9f2c7d343b987a3efb757a 100755
--- a/compconfig
+++ b/compconfig
@@ -62,7 +62,7 @@ try:
     config_data = list()
     for i, config_file in enumerate(config_files):
         config_data.append(ConfigObj(config_file, 
-                interpolation=False, file_error=True, write_empty_values=True))
+                file_error=True, write_empty_values=True))
 except IOError as error:
     die(error.message)
 
diff --git a/diffconfig b/diffconfig
index 5dab60cda574f53b01140ca6195300d71ceaa0e7..a0be1cb017d1f0e13dd64ee8a673dc31afc8fa15 100755
--- a/diffconfig
+++ b/diffconfig
@@ -55,9 +55,9 @@ try:
     config_file1 = args.config1
     config_file2 = args.config2
     config_data1 = ConfigObj(config_file1, 
-                interpolation=False, file_error=True,write_empty_values=True)
+                file_error=True,write_empty_values=True)
     config_data2 = ConfigObj(config_file2, 
-                interpolation=False, file_error=True)
+                file_error=True)
 except IOError as error:
     die(error.message)
 
diff --git a/expconfig.py b/expconfig.py
index 6c95dbbcc51b13ce9f94285863fa480e7acded41..9c08c8426c59c1a666c09260cc2ce0c4e78dfb8a 100644
--- a/expconfig.py
+++ b/expconfig.py
@@ -86,6 +86,7 @@ class ConfigObj(configobj.ConfigObj):
         default_args = {
             'encoding': _preferred_encoding,
             'default_encoding': _preferred_encoding,
+            'interpolation': False,
         }
         for kw in default_args:
             if not kw in kwargs:
@@ -425,8 +426,8 @@ class ExpConfig(ConfigObj):
         pre_config = None
         setup_config_name = get_config_name('', ExpConfig.setup_config_name)
         if os.path.exists(setup_config_name):
-            pre_config = ConfigObj(setup_config_name, interpolation=False)
-        user_config = ConfigObj(experiment_config_name, interpolation=False)
+            pre_config = ConfigObj(setup_config_name)
+        user_config = ConfigObj(experiment_config_name)
         if pre_config:
             pre_config.merge(user_config)
         else:
@@ -469,7 +470,7 @@ class ExpConfig(ConfigObj):
 
         # Start from empty configuration
 
-        pre_config = ConfigObj(interpolation=False)
+        pre_config = ConfigObj()
         config_versions = []
 
         # Get default experiment id from file name
@@ -492,12 +493,12 @@ class ExpConfig(ConfigObj):
 
         lib_config_name = get_config_name(ExpConfig.exp_lib_dir,
                                           ExpConfig.default_name+'.config')
-        pre_config.merge(ConfigObj(lib_config_name, interpolation=False))
+        pre_config.merge(ConfigObj(lib_config_name))
         split_shared_sections(pre_config)
         register_version(pre_config, config_versions)
 
         if os.path.exists(setup_config_name):
-            pre_config.merge(ConfigObj(setup_config_name, interpolation=False))
+            pre_config.merge(ConfigObj(setup_config_name))
             split_shared_sections(pre_config)
             list_assign(pre_config)
             register_version(pre_config, config_versions)
@@ -505,7 +506,7 @@ class ExpConfig(ConfigObj):
         lib_config_name = get_config_name(ExpConfig.exp_lib_dir, 
                                           experiment_type+'.config')
         if os.path.exists(lib_config_name):
-            pre_config.merge(ConfigObj(lib_config_name, interpolation=False))
+            pre_config.merge(ConfigObj(lib_config_name))
             split_shared_sections(pre_config)
             list_assign(pre_config)
             register_version(pre_config, config_versions)
@@ -517,7 +518,7 @@ class ExpConfig(ConfigObj):
             lib_config_name = get_config_name(ExpConfig.opt_lib_dir, 
                                               option+'.config')
             if os.path.exists(lib_config_name):
-                pre_config.merge(ConfigObj(lib_config_name, interpolation=False))
+                pre_config.merge(ConfigObj(lib_config_name))
                 split_shared_sections(pre_config)
                 list_assign(pre_config)
                 register_version(pre_config, config_versions)
@@ -531,7 +532,7 @@ class ExpConfig(ConfigObj):
                                           environment+'.config')
 
         if os.path.exists(lib_config_name):
-            pre_config.merge(ConfigObj(lib_config_name, interpolation=False))
+            pre_config.merge(ConfigObj(lib_config_name))
             list_assign(pre_config)
             register_version(pre_config, config_versions)
 
@@ -541,8 +542,7 @@ class ExpConfig(ConfigObj):
 
         # Re-read config to allow overriding default settings
         # TODO: probably nicer if default experiment is given as argument
-        experiment_config = ConfigObj(experiment_config_name,
-                                      interpolation=False)
+        experiment_config = ConfigObj(experiment_config_name)
         pre_config.merge(experiment_config)
         split_shared_sections(pre_config)
         list_assign(pre_config)
@@ -603,7 +603,6 @@ class ExpConfig(ConfigObj):
         pre_config = None
 
         config_lines.seek(0)
-        ConfigObj.__init__(self, io.TextIOWrapper(config_lines),
-                           interpolation=False)
+        ConfigObj.__init__(self, io.TextIOWrapper(config_lines))
         self.walk(uneval_key)
 
diff --git a/getconfig b/getconfig
index e2400cdc37570028809dc4bfd6b7aed4e9c0fb72..48d96015f8df09a8ab904bbbcf5bdd50b0fa332b 100755
--- a/getconfig
+++ b/getconfig
@@ -39,8 +39,8 @@ try:
 except IOError as error:
     die("'{0}': {1}".format(error.filename, error.strerror))
 
-config_data = ConfigObj(update_data.get_config_file(), interpolation=False,
-                        write_empty_values=True, indent_type=args.indent_string)
+config_data = ConfigObj(update_data.get_config_file(), write_empty_values=True,
+                        indent_type=args.indent_string)
 for d in update_data.get_config_dicts():
     config_data.merge(d)
 
diff --git a/mkexp b/mkexp
index 322b60d5e614f516d0271ac0483b30246cadbe65..e147d7bee4d62cecc134378b9f086b6a39bbf414 100755
--- a/mkexp
+++ b/mkexp
@@ -401,7 +401,7 @@ template_env.tests['set'] = is_set
 # Read and store configuration info from input and experiments' library
 # Store environment as default for control settings, then add config from files
 
-extra_dict = ConfigObj(interpolation=False)
+extra_dict = ConfigObj()
 for assign_dict in expargparse.assigns_to_dicts(args):
     extra_dict.merge(assign_dict)
 extra_dict['mkexp_input'] = 'Generated by {0} ({1}) {2}'.format(
@@ -504,7 +504,7 @@ def extend(subjob, jobs_config, extended_jobs, job_dict=None):
             extend(extended_job, jobs_config, extended_jobs, job_dict)
 
         # Add global job settings
-        pre_config = ConfigObj(interpolation=False)
+        pre_config = ConfigObj()
         if job_dict:
             pre_config.merge(job_dict)
 
@@ -548,8 +548,7 @@ for subjob, subconfig in jobs_config.items():
         config_lines = io.BytesIO()
         config.write(config_lines)
         config_lines.seek(0)
-        job_config = ConfigObj(io.TextIOWrapper(config_lines),
-                               interpolation=False)
+        job_config = ConfigObj(io.TextIOWrapper(config_lines))
 
         # Check namelist override
         if 'namelists' in subconfig:
@@ -595,7 +594,7 @@ for subjob, subconfig in jobs_config.items():
                 if use_template:
                     if use_template.lower() == 'true':
                         use_template = namelist
-                    namelist_config = ConfigObj(job_config, interpolation=False)
+                    namelist_config = ConfigObj(job_config)
                     namelist_config['_'] = job_config
                     namelist_config.merge(expconfig.odict(groups))
                     expconfig.merge_comments(namelist_config, groups)
diff --git a/selconfig b/selconfig
index 3ba0c35490acec4e85a3b9272be9e36a239acf3c..1134935aa3ba7c3d48bbe04891221017c3cbac69 100755
--- a/selconfig
+++ b/selconfig
@@ -45,13 +45,13 @@ try:
     config_file = args.config
     if config_file == '-':
         config_file = sys.stdin
-    config_data = ConfigObj(config_file, interpolation=False, file_error=True)
+    config_data = ConfigObj(config_file, file_error=True)
 except IOError as error:
     die(error.message)
 
 # Walk config to the appropriate section and create output structure
 
-selected_data = ConfigObj(interpolation=False, write_empty_values=True,
+selected_data = ConfigObj(write_empty_values=True,
                           indent_type='  ')
 if args.section:
     config = config_data
diff --git a/setconfig b/setconfig
index 6060a0552a76d66b55cca4de92751562513de5c0..0e74e598f9eb1bedceeb634330c1fa50fad5340a 100755
--- a/setconfig
+++ b/setconfig
@@ -51,14 +51,13 @@ try:
     config_file = args.config
     if config_file == '-':
         config_file = sys.stdin
-    config_data = ConfigObj(config_file, interpolation=False, file_error=True,
+    config_data = ConfigObj(config_file, file_error=True,
                             write_empty_values=True)
     # Add settings from other files
     for add_file in args.add:
         if add_file == '-':
             add_file = sys.stdin
-        config_data.merge(ConfigObj(add_file, interpolation=False,
-                                    file_error=True))
+        config_data.merge(ConfigObj(add_file, file_error=True))
 except IOError as error:
     die(error.message)
 
diff --git a/test.py b/test.py
index e627d0cd76c6af8855b1dd6b2303355808d252bb..fdb13352c9a115a207c0ba9c02a43e678c8f0d3d 100644
--- a/test.py
+++ b/test.py
@@ -8,6 +8,8 @@ import subprocess
 import sys
 import unittest
 
+import expconfig
+
 from os.path import join
 
 
@@ -1708,6 +1710,14 @@ class UnicodeTestCase(MkexpSimpleTestCase):
             VAR = ÄÖÜäöüß😉
         """)
 
+class ExpConfigTestCase(unittest.TestCase):
+
+    def test_default_interpolation_false(self):
+        config = expconfig.ConfigObj({
+            'var1': 'value1',
+            'var2': '$var1',
+        })
+        self.assertEqual(config['var2'], '$var1')
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/unmergeconfig b/unmergeconfig
index 4d2337f7613ab479459f004fb827e71099d26357..f83eb73bae6fc9271a4e2ca50256b2c874517ac9 100755
--- a/unmergeconfig
+++ b/unmergeconfig
@@ -97,9 +97,8 @@ args = command_line.parse_args()
 # File handling
 
 try:
-    base_config = ConfigObj(args.base_config, interpolation=False,
-        file_error=True)
-    config = ConfigObj(args.config, interpolation=False, file_error=True)
+    base_config = ConfigObj(args.base_config, file_error=True)
+    config = ConfigObj(args.config, file_error=True)
 except IOError as error:
     die(error.args[0])