Index: servers/slapd/overlays/memberof.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/overlays/memberof.c,v
retrieving revision 1.19
diff -u -r1.19 memberof.c
--- servers/slapd/overlays/memberof.c	11 Jan 2008 05:07:43 -0000	1.19
+++ servers/slapd/overlays/memberof.c	30 Jun 2008 01:28:12 -0000
@@ -843,11 +843,17 @@
 					break;
 		
 				case LDAP_MOD_REPLACE:
+					/* Handle this just like a delete (see above) */
+					if ( ml->sml_nvalues == NULL ) {
+						mlp = &ml->sml_next;
+						break;
+					}
+
 				case LDAP_MOD_ADD:
 					/* NOTE: right now, the attributeType we use
 					 * for member must have a normalized value */
 					assert( ml->sml_nvalues != NULL );
-		
+
 					for ( i = 0; !BER_BVISNULL( &ml->sml_nvalues[ i ] ); i++ ) {
 						int		rc;
 						Entry		*e;
@@ -1362,7 +1368,7 @@
 					ber_bvarray_free_x( vals, op->o_tmpmemctx );
 				}
 	
-				if ( ml->sml_op == LDAP_MOD_DELETE ) {
+				if ( ml->sml_op == LDAP_MOD_DELETE || ml->sml_nvalues == NULL) {
 					break;
 				}
 				/* fall thru */
