diff --git a/CHANGES b/CHANGES
index 71a8f56a92ce9364eb388ad0b514e8faeac4ace1..d313a21b45fd4f9647fc6f96f3fe1db7c6121e7a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,5 @@
 OpenLDAP 2.3 Change Log
+	Fixed slapd-meta DN massage error code handling (ITS#4711)
 
 OpenLDAP 2.3.28 Engineering
 	Fixed libldap ldap.conf max line length (ITS#4669)
diff --git a/servers/slapd/back-meta/search.c b/servers/slapd/back-meta/search.c
index edbf6550ea6b0bd9902d65be35197a79b1e9f9f1..b0587c3fe49d9847c0db507f050c1adfcbe4a3c5 100644
--- a/servers/slapd/back-meta/search.c
+++ b/servers/slapd/back-meta/search.c
@@ -154,16 +154,16 @@ meta_back_search_start(
 	 */
 	dc->ctx = "searchBase";
 	switch ( ldap_back_dn_massage( dc, &realbase, &mbase ) ) {
-	default:
+	case LDAP_SUCCESS:
 		break;
 
-	case REWRITE_REGEXEC_UNWILLING:
+	case LDAP_UNWILLING_TO_PERFORM:
 		rs->sr_err = LDAP_UNWILLING_TO_PERFORM;
 		rs->sr_text = "Operation not allowed";
 		send_ldap_result( op, rs );
 		return META_SEARCH_ERR;
 
-	case REWRITE_REGEXEC_ERR:
+	default:
 
 		/*
 		 * this target is no longer candidate