diff --git a/lib/plugins/config/_test/configuration.test.php b/lib/plugins/config/_test/configuration.test.php
new file mode 100644
index 0000000000000000000000000000000000000000..eeeff61a398b5a45d508f1338c24aeb8cd222ee2
--- /dev/null
+++ b/lib/plugins/config/_test/configuration.test.php
@@ -0,0 +1,31 @@
+<?php
+
+class plugin_config_configuration_test extends DokuWikiTest {
+
+    private $config = '';
+    private $meta = '';
+
+    function __construct() {
+        $this->config = dirname(__FILE__).'/data/config.php';
+        $this->meta   = dirname(__FILE__).'/data/metadata.php';
+        require_once(dirname(__FILE__).'/../settings/config.class.php');
+    }
+
+    function test_readconfig() {
+        $confmgr = new configuration($this->meta);
+
+        $conf = $confmgr->_read_config($this->config);
+
+        //print_r($conf);
+
+        $this->assertEquals('42', $conf['int1']);
+        $this->assertEquals('6*7', $conf['int2']);
+
+        $this->assertEquals('Hello World', $conf['str1']);
+        $this->assertEquals('G\'day World', $conf['str2']);
+        $this->assertEquals('Hello World', $conf['str3']);
+        $this->assertEquals("Hello 'World'", $conf['str4']);
+        $this->assertEquals('Hello "World"', $conf['str5']);
+    }
+
+}
\ No newline at end of file
diff --git a/lib/plugins/config/_test/data/config.php b/lib/plugins/config/_test/data/config.php
new file mode 100644
index 0000000000000000000000000000000000000000..4ed450e9301d0026eb9ddc2b9a0635eff8bc8b05
--- /dev/null
+++ b/lib/plugins/config/_test/data/config.php
@@ -0,0 +1,14 @@
+<?php
+
+
+$conf['int1'] = 42;
+$conf['int2'] = 6*7;
+
+$conf['str1']  = 'Hello World';
+$conf['str2']  = 'G\'day World';
+$conf['str3']  = "Hello World";
+$conf['str4']  = "Hello 'World'";
+$conf['str5']  = "Hello \"World\"";
+
+$conf['foo']['bar'] = 'x1';
+$conf['foo']['baz'] = 'x2';
diff --git a/lib/plugins/config/_test/data/metadata.php b/lib/plugins/config/_test/data/metadata.php
new file mode 100644
index 0000000000000000000000000000000000000000..34ab42be7c7c32a8fbbced8a1667e76853765bc5
--- /dev/null
+++ b/lib/plugins/config/_test/data/metadata.php
@@ -0,0 +1,11 @@
+<?php
+
+$meta['int1'] = array('numeric');
+$meta['int2'] = array('numeric');
+
+$meta['str1'] = array('string');
+$meta['str2'] = array('string');
+$meta['str3'] = array('string');
+$meta['str4'] = array('string');
+$meta['str5'] = array('string');
+
diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php
index e71a7e5f9fb54adeddeb19082bcb84d31e8b32a5..5a2aa298049f57b16dcf1690570a4f4a862c9599 100644
--- a/lib/plugins/config/settings/config.class.php
+++ b/lib/plugins/config/settings/config.class.php
@@ -6,6 +6,9 @@
  *  @author  Ben Coburn <btcoburn@silicodon.net>
  */
 
+
+if(!defined('CM_KEYMARKER')) define('CM_KEYMARKER','____');
+
 if (!class_exists('configuration')) {
 
   class configuration {