diff --git a/include/simpleplugin/class_simplePlugin.inc b/include/simpleplugin/class_simplePlugin.inc
index 9ca8a180d708ef396ff3b88d79118951cb323c3e..811f4fd123481a7b3ac84f7e4a9dab01423de7ac 100644
--- a/include/simpleplugin/class_simplePlugin.inc
+++ b/include/simpleplugin/class_simplePlugin.inc
@@ -1805,11 +1805,7 @@ class simplePlugin
 
     /* Try to use plain entry first */
     $dn = $attribute.'='.ldap_escape_dn($this->$attribute).','.$base;
-    if ($dn == $this->orig_dn) {
-      return $dn;
-    }
-    $ldap->cat($dn, array('dn'));
-    if (!$ldap->fetch()) {
+    if (($dn == $this->orig_dn) || !$ldap->dn_exists($dn)) {
       return $dn;
     }
 
@@ -1827,11 +1823,7 @@ class simplePlugin
           $dn .= '+'.$attr.'='.ldap_escape_dn($this->$attr);
         }
         $dn .= ','.$base;
-        if ($dn == $this->orig_dn) {
-          return $dn;
-        }
-        $ldap->cat($dn, array('dn'));
-        if (!$ldap->fetch()) {
+        if (($dn == $this->orig_dn) || !$ldap->dn_exists($dn)) {
           return $dn;
         }
       }