diff --git a/contrib/fusiondirectory.conf b/contrib/fusiondirectory.conf
index 9b669a8e9821b8e26afa9f409cddf75466995a27..52f05bbfc720fe28178caea28c3b84e47b7f4e81 100644
--- a/contrib/fusiondirectory.conf
+++ b/contrib/fusiondirectory.conf
@@ -41,7 +41,6 @@
 {if $cv.tls}
         ldapTLS="TRUE"
 {/if}
-        config="ou=fusiondirectory,ou=configs,ou=systems,{$cv.base}">
 
         <referral URI="{$cv.connection}/{$cv.base}"
                         adminDn="{$cv.admin}"
diff --git a/html/class_passwordRecovery.inc b/html/class_passwordRecovery.inc
index 12b50097495f2ea9f59831daf7d144ff53e5d563..b9b904ffb1251dd7a27010270e157e35eb40dca4 100644
--- a/html/class_passwordRecovery.inc
+++ b/html/class_passwordRecovery.inc
@@ -245,7 +245,7 @@ class passwordRecovery {
   function readLdapConfig()
   {
     $ldap   = $this->config->get_ldap_link();
-    $token  = get_ou("tokenRDN").$this->config->current['BASE'];
+    $token  = get_ou('tokenRDN').get_ou('fusiondirectoryRDN').$this->config->current['BASE'];
     $dn     = "cn=config,$token";
     $ldap->cat($dn);
     if ($attrs = $ldap->fetch()) {
@@ -339,7 +339,7 @@ class passwordRecovery {
     $ldap = $this->config->get_ldap_link();
 
     // Check if token branch is here
-    $token = get_ou("tokenRDN").$this->config->current['BASE'];
+    $token = get_ou('tokenRDN').get_ou('fusiondirectoryRDN').$this->config->current['BASE'];
     $ldap->cat($token, array('dn'));
     if (!$ldap->count()) {
       /* It's not, let's create it */
@@ -385,7 +385,7 @@ class passwordRecovery {
     /* Retrieve hash from the ldap */
     $ldap = $this->config->get_ldap_link();
 
-    $token  = get_ou("tokenRDN").$this->config->current['BASE'];
+    $token  = get_ou('tokenRDN').get_ou('fusiondirectoryRDN').$this->config->current['BASE'];
     $dn     = "ou=".$this->uid.",$token";
     $ldap->cat($dn);
     $attrs = $ldap->fetch();
diff --git a/html/index.php b/html/index.php
index e2f6335420b777757447027f18411b3411847b39..35f30f9200c060fff73ecce23257606548534c9a 100644
--- a/html/index.php
+++ b/html/index.php
@@ -270,11 +270,11 @@ if (($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['login'])) || $htacces
 
 
   /* Check for locking area */
-  $ldap->cat($config->get_cfg_value("config"), array("dn"));
+  $ldap->cat(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'], array('dn'));
   $attrs = $ldap->fetch();
-  if (!count ($attrs)) {
+  if (!count($attrs)) {
     $ldap->cd($config->current['BASE']);
-    $ldap->create_missing_trees($config->get_cfg_value("config"));
+    $ldap->create_missing_trees(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
   }
 
 
diff --git a/include/functions.inc b/include/functions.inc
index fc8d34aee7fa5e0ed5a824d02091fd6d0bea2f99..288b802bd26826194688f9438484516113144654 100644
--- a/include/functions.inc
+++ b/include/functions.inc
@@ -756,7 +756,7 @@ function add_lock($object, $user)
 
   /* Check for existing entries in lock area */
   $ldap = $config->get_ldap_link();
-  $ldap->cd ($config->get_cfg_value("config"));
+  $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
   $ldap->search("(&(objectClass=gosaLockEntry)(gosaUser=$user)(gosaObject=".base64_encode($object)."))",
       array("gosaUser"));
   if (!$ldap->success()) {
@@ -768,14 +768,14 @@ function add_lock($object, $user)
   if ($ldap->count() == 0) {
     $attrs  = array();
     $name   = md5($object);
-    $ldap->cd("cn=$name,".$config->get_cfg_value("config"));
+    $ldap->cd("cn=$name,".get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
     $attrs['objectClass'] = 'gosaLockEntry';
     $attrs['gosaUser']    = $user;
     $attrs['gosaObject']  = base64_encode($object);
     $attrs['cn']          = '$name';
     $ldap->add($attrs);
     if (!$ldap->success()) {
-      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), "cn=$name,".$config->get_cfg_value("config"), 0), LDAP_ERROR);
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), "cn=$name,".get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'], 0), LDAP_ERROR);
       return;
     }
   }
@@ -818,7 +818,7 @@ function del_lock ($object)
 
   /* Check for existance and remove the entry */
   $ldap = $config->get_ldap_link();
-  $ldap->cd($config->get_cfg_value('config'));
+  $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
   $ldap->search('(&(objectClass=gosaLockEntry)(gosaObject='.base64_encode($object).'))', array('gosaObject'));
   $ldap->fetch();
   if (!$ldap->success()) {
@@ -844,7 +844,7 @@ function del_user_locks($userdn)
 
   /* Get LDAP ressources */
   $ldap = $config->get_ldap_link();
-  $ldap->cd ($config->get_cfg_value("config"));
+  $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
 
   /* Remove all objects of this user, drop errors silently in this case. */
   $ldap->search("(&(objectClass=gosaLockEntry)(gosaUser=$userdn))", array("gosaUser"));
@@ -880,7 +880,7 @@ function get_lock ($object)
   /* Get LDAP link, check for presence of the lock entry */
   $user = "";
   $ldap = $config->get_ldap_link();
-  $ldap->cd ($config->get_cfg_value("config"));
+  $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
   $ldap->search("(&(objectClass=gosaLockEntry)(gosaObject=".base64_encode($object)."))", array("gosaUser"));
   if (!$ldap->success()) {
     msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), "", LDAP_SEARCH), LDAP_ERROR);
@@ -923,30 +923,30 @@ function get_multiple_locks($objects)
   global $config;
 
   if (is_array($objects)) {
-    $filter = "(&(objectClass=gosaLockEntry)(|";
+    $filter = '(&(objectClass=gosaLockEntry)(|';
     foreach ($objects as $obj) {
-      $filter .= "(gosaObject=".base64_encode($obj).")";
+      $filter .= '(gosaObject='.base64_encode($obj).')';
     }
-    $filter .= "))";
+    $filter .= '))';
   } else {
-    $filter = "(&(objectClass=gosaLockEntry)(gosaObject=".base64_encode($objects)."))";
+    $filter = '(&(objectClass=gosaLockEntry)(gosaObject='.base64_encode($objects).'))';
   }
 
   /* Get LDAP link, check for presence of the lock entry */
   $user = "";
   $ldap = $config->get_ldap_link();
-  $ldap->cd ($config->get_cfg_value("config"));
-  $ldap->search($filter, array("gosaUser","gosaObject"));
+  $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
+  $ldap->search($filter, array('gosaUser','gosaObject'));
   if (!$ldap->success()) {
-    msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), "", LDAP_SEARCH), LDAP_ERROR);
-    return "";
+    msg_dialog::display(_('LDAP error'), msgPool::ldaperror($ldap->get_error(), '', LDAP_SEARCH), LDAP_ERROR);
+    return '';
   }
 
   $users = array();
   while ($attrs = $ldap->fetch()) {
     $dn   = base64_decode($attrs['gosaObject'][0]);
     $user = $attrs['gosaUser'][0];
-    $users[] = array("dn" => $dn, "user" => $user);
+    $users[] = array('dn' => $dn, 'user' => $user);
   }
   return $users;
 }
@@ -1387,74 +1387,77 @@ function get_ou($name)
   global $config;
 
   $map = array(
-                "roleRDN"                 => "ou=roles,",
-                "ogroupRDN"               => "ou=groups,",
-                "applicationRDN"          => "ou=apps,",
-                "systemRDN"               => "ou=systems,",
-                "serverRDN"               => "ou=servers,ou=systems,",
-                "terminalRDN"             => "ou=terminals,ou=systems,",
-                "workstationRDN"          => "ou=workstations,ou=systems,",
-                "printerRDN"              => "ou=printers,ou=systems,",
-                "phoneRDN"                => "ou=phones,ou=systems,",
-                "componentRDN"            => "ou=netdevices,ou=systems,",
-                "sambaMachineAccountRDN"  => "ou=computers,",
-                "mobilePhoneRDN"          => "ou=mobile,ou=systems,",
+    'fusiondirectoryRDN'      => 'ou=fusiondirectory,',
+    'lockRDN'                 => 'ou=locks,'
+    'tokenRDN'                => 'ou=tokens,'
 
-                "inventoryRDN"            => "ou=inventory,",
+    'roleRDN'                 => 'ou=roles,',
+    'ogroupRDN'               => 'ou=groups,',
+    'applicationRDN'          => 'ou=apps,',
+    'systemRDN'               => 'ou=systems,',
+    'serverRDN'               => 'ou=servers,ou=systems,',
+    'terminalRDN'             => 'ou=terminals,ou=systems,',
+    'workstationRDN'          => 'ou=workstations,ou=systems,',
+    'printerRDN'              => 'ou=printers,ou=systems,',
+    'phoneRDN'                => 'ou=phones,ou=systems,',
+    'componentRDN'            => 'ou=netdevices,ou=systems,',
+    'sambaMachineAccountRDN'  => 'ou=computers,',
+    'mobilePhoneRDN'          => 'ou=mobile,ou=systems,',
 
-                "ipmiRDN"                 => "ou=ipmi,",
+    'inventoryRDN'            => 'ou=inventory,',
 
-                "faxBlocklistRDN"     => "ou=gofax,ou=systems,",
-                "aclRoleRDN"          => "ou=aclroles,",
-                "phoneMacroRDN"       => "ou=macros,ou=asterisk,ou=configs,ou=systems,",
-                "phoneConferenceRDN"  => "ou=conferences,ou=asterisk,ou=configs,ou=systems,",
+    'ipmiRDN'                 => 'ou=ipmi,',
 
-                "faiBaseRDN"      => "ou=fai,ou=configs,ou=systems,",
-                "faiScriptRDN"    => "ou=scripts,",
-                "faiHookRDN"      => "ou=hooks,",
-                "faiTemplateRDN"  => "ou=templates,",
-                "faiVariableRDN"  => "ou=variables,",
-                "faiProfileRDN"   => "ou=profiles,",
-                "faiPackageRDN"   => "ou=packages,",
-                "faiPartitionRDN" => "ou=disk,",
+    'faxBlocklistRDN'     => 'ou=gofax,ou=systems,',
+    'aclRoleRDN'          => 'ou=aclroles,',
+    'phoneMacroRDN'       => 'ou=macros,ou=asterisk,ou=configs,ou=systems,',
+    'phoneConferenceRDN'  => 'ou=conferences,ou=asterisk,ou=configs,ou=systems,',
 
-                "debconfRDN"      => "ou=debconf,",
+    'faiBaseRDN'      => 'ou=fai,ou=configs,ou=systems,',
+    'faiScriptRDN'    => 'ou=scripts,',
+    'faiHookRDN'      => 'ou=hooks,',
+    'faiTemplateRDN'  => 'ou=templates,',
+    'faiVariableRDN'  => 'ou=variables,',
+    'faiProfileRDN'   => 'ou=profiles,',
+    'faiPackageRDN'   => 'ou=packages,',
+    'faiPartitionRDN' => 'ou=disk,',
 
-                "supannStructuresRDN" => "ou=structures,",
+    'debconfRDN'      => 'ou=debconf,',
 
-                "tokenRDN"    => "ou=tokens,",
+    'supannStructuresRDN' => 'ou=structures,',
 
-                "sudoRDN"     => "ou=sudoers,",
+    'sudoRDN'     => 'ou=sudoers,',
 
-                "netgroupRDN" => "ou=netgroup,",
+    'netgroupRDN' => 'ou=netgroup,',
 
-                "deviceRDN"   => "ou=devices,",
+    'deviceRDN'   => 'ou=devices,',
 
-                "aliasRDN"    => "ou=alias,",
+    'aliasRDN'    => 'ou=alias,',
 
-                "dsaRDN"    => "ou=dsa,",
+    'dsaRDN'    => 'ou=dsa,',
 
-                "mimetypeRDN" => "ou=mime,");
+    'mimetypeRDN' => 'ou=mime,'
+  );
 
   /* Preset ou... */
-  if ($config->get_cfg_value($name, "_not_set_") != "_not_set_") {
+  if ($config->get_cfg_value($name, '_not_set_') != '_not_set_') {
     $ou = $config->get_cfg_value($name);
   } elseif (isset($map[$name])) {
     $ou = $map[$name];
     return $ou;
   } else {
-    trigger_error("No department mapping found for type ".$name);
-    return "";
+    trigger_error('No department mapping found for type '.$name);
+    return '';
   }
 
-  if ($ou != "") {
+  if ($ou != '') {
     if (!preg_match('/^[^=]+=[^=]+/', $ou)) {
       $ou = @LDAP::convert("ou=$ou");
     } else {
       $ou = @LDAP::convert("$ou");
     }
 
-    if (preg_match("/".preg_quote($config->current['BASE'], '/')."$/", $ou)) {
+    if (preg_match('/'.preg_quote($config->current['BASE'], '/').'$/', $ou)) {
       return $ou;
     } else {
       if (preg_match('/,$/', $ou)) {
@@ -1463,9 +1466,8 @@ function get_ou($name)
         return "$ou,";
       }
     }
-
   } else {
-    return "";
+    return '';
   }
 }
 
diff --git a/include/variables_common.inc b/include/variables_common.inc
index b65b982d157880e1a61e4f94dd9f7fffd35a29a2..24b59fdb4e0d20c244c2a599690a1a241ad04317 100644
--- a/include/variables_common.inc
+++ b/include/variables_common.inc
@@ -68,6 +68,6 @@ define ("FD_VERSION", "1.0.9-dev"); /*! Define FusionDirectory version */
 /*!
  * \brief FusionDirectory config object RDN
  */
-define ("CONFIGRDN", "cn=fusiondirectory,ou=configs,"); /*! Define FusionDirectory config object */
+define ("CONFIGRDN", "cn=config,ou=fusiondirectory"); /*! Define FusionDirectory config object */
 
 ?>
diff --git a/plugins/admin/password/class_recoveryConfig.inc b/plugins/admin/password/class_recoveryConfig.inc
index 02625cc644ff49ad522e3515d817ecd306e47da9..c7a57a679be97f8f74444776f8bea3638975f91d 100644
--- a/plugins/admin/password/class_recoveryConfig.inc
+++ b/plugins/admin/password/class_recoveryConfig.inc
@@ -133,7 +133,7 @@ class recoveryConfig extends simplePlugin
   {
     // Check if token branch is here
     $ldap = $config->get_ldap_link();
-    $tokenBranch = get_ou("tokenRDN").$config->current['BASE'];
+    $tokenBranch = get_ou('tokenRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'];
     $ldap->cat($tokenBranch, array('dn'));
     if (!$ldap->count()) {
       $ldap->cd($config->current['BASE']);
diff --git a/plugins/admin/password/main.inc b/plugins/admin/password/main.inc
index a9c8d4f1df00f63805ce6512fe5edf3d894a670a..5ff1918aef22114650a022fb4adb81e23774aaff 100644
--- a/plugins/admin/password/main.inc
+++ b/plugins/admin/password/main.inc
@@ -18,7 +18,7 @@
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
-$tokenBranch = get_ou('tokenRDN').$config->current['BASE'];
+$tokenBranch = get_ou('tokenRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'];
 recoveryConfig::mainInc('recoveryConfig', "cn=config,$tokenBranch");
 
 ?>