diff --git a/servers/slapd/back-ldbm/alias.c b/servers/slapd/back-ldbm/alias.c
index 88edf68724241e03a770b33bc40e4eb3838f4d23..28d53eb7b71a38a7a5513b5aacd65cd70a6be8f6 100644
--- a/servers/slapd/back-ldbm/alias.c
+++ b/servers/slapd/back-ldbm/alias.c
@@ -121,7 +121,7 @@ char *derefDN ( Backend     *be,
   
 
   Debug( LDAP_DEBUG_TRACE, 
-	 "<= dereferencing dn %s\n", 
+	 "<= dereferencing dn: \"%s\"\n", 
 	 dn, 0, 0 );
   
   newDN = ch_strdup ( dn );
@@ -203,8 +203,10 @@ char *derefDN ( Backend     *be,
     }
   }
   
-  /* free reader lock */
-  cache_return_entry_r(&li->li_cache, eMatched);
+  if(eMatched != NULL) {
+    /* free reader lock */
+    cache_return_entry_r(&li->li_cache, eMatched);
+  }
 
   /*
    * the final part of the DN might be an alias