diff --git a/servers/slapd/overlays/unique.c b/servers/slapd/overlays/unique.c
index 03832cd858fc764841e2cfa3cb399b4b5388bcf9..8a880f78d47ea75c47d4055433d2d93d1dce070c 100644
--- a/servers/slapd/overlays/unique.c
+++ b/servers/slapd/overlays/unique.c
@@ -1170,6 +1170,11 @@ unique_modify(
 	Debug(LDAP_DEBUG_TRACE, "==> unique_modify <%s>\n",
 	      op->o_req_dn.bv_val, 0, 0);
 
+	if ( !op->orm_modlist ) {
+		Debug(LDAP_DEBUG_TRACE, "unique_modify: got empty modify op\n", 0, 0, 0);
+		return rc;
+	}
+
 	/* skip the checks if the operation has manageDsaIt control in it
 	 * (for replication) */
 	if ( op->o_managedsait > SLAP_CONTROL_IGNORED
@@ -1203,22 +1208,14 @@ unique_modify(
 			     && !dnIsSuffix( &op->o_req_ndn, &uri->ndn ))
 				continue;
 
-			if ( !(m = op->orm_modlist) ) {
-				op->o_bd->bd_info = (BackendInfo *) on->on_info;
-				send_ldap_error(op, rs, LDAP_INVALID_SYNTAX,
-						"unique_modify() got null op.orm_modlist");
-				rc = rs->sr_err;
-				break;
-
-			} else
-				for ( ; m; m = m->sml_next)
-					if ( (m->sml_op & LDAP_MOD_OP)
-					     != LDAP_MOD_DELETE )
-						ks += count_filter_len
-							( domain,
-							  uri,
-							  m->sml_desc,
-							  m->sml_values);
+			for ( m = op->orm_modlist; m; m = m->sml_next)
+				if ( (m->sml_op & LDAP_MOD_OP)
+				     != LDAP_MOD_DELETE )
+					ks += count_filter_len
+						( domain,
+						  uri,
+						  m->sml_desc,
+						  m->sml_values);
 
 			/* skip this domain-uri if it isn't involved */
 			if ( !ks ) continue;
diff --git a/tests/scripts/test024-unique b/tests/scripts/test024-unique
index fe67d37ef6a71fb02884f35f4e380d0c8eb307b0..566475c46d735982daffc40e1aba19c005086e22 100755
--- a/tests/scripts/test024-unique
+++ b/tests/scripts/test024-unique
@@ -555,6 +555,21 @@ if test $RC != 0 ; then
 	exit -1
 fi
 
+echo "Sending an empty modification"
+
+$LDAPMODIFY -D "$UNIQUEDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \
+	 $TESTOUT 2>&1 << EOF
+dn: uid=empty,ou=users,o=unique
+changetype: modify
+EOF
+
+RC=$?
+if test $RC != 0 ; then
+	echo "spurious unique error ($RC)!"
+	test $KILLSERVERS != no && kill -HUP $KILLPIDS
+	exit -1
+fi
+
 echo "Making a record non-unique"
 $LDAPMODIFY -D "uid=dave,ou=users,o=unique" -h $LOCALHOST -p $PORT1 -w $PASSWD > \
     $TESTOUT 2>&1 << EOF