diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c
index e165238df2850df39caad2abd7f8eb4e3546dd56..e1a50fe3573d2263f25aab99283c3ded5a3fc3a2 100644
--- a/servers/slapd/overlays/syncprov.c
+++ b/servers/slapd/overlays/syncprov.c
@@ -1635,6 +1635,7 @@ syncprov_add_slog( Operation *op )
 	syncprov_info_t		*si = on->on_bi.bi_private;
 	sessionlog *sl;
 	slog_entry *se;
+	char uuidstr[40];
 	int rc;
 
 	sl = si->si_logs;
@@ -1673,12 +1674,11 @@ syncprov_add_slog( Operation *op )
 
 		ldap_pvt_thread_rdwr_wlock( &sl->sl_mutex );
 		if ( LogTest( LDAP_DEBUG_SYNC ) ) {
-			char uuidstr[40] = {};
+			uuidstr[0] = 0;
 			if ( !BER_BVISEMPTY( &opc->suuid ) ) {
 				lutil_uuidstr_from_normalized( opc->suuid.bv_val, opc->suuid.bv_len,
 					uuidstr, 40 );
 			}
-
 			Debug( LDAP_DEBUG_SYNC, "%s syncprov_add_slog: "
 				"adding csn=%s to sessionlog, uuid=%s\n",
 				op->o_log_prefix, se->se_csn.bv_val, uuidstr );
@@ -1694,7 +1694,13 @@ syncprov_add_slog( Operation *op )
 			}
 		}
 		rc = tavl_insert( &sl->sl_entries, se, syncprov_sessionlog_cmp, avl_dup_error );
-		assert( rc == LDAP_SUCCESS );
+		if ( rc ) {
+			Debug( LDAP_DEBUG_SYNC, "%s syncprov_add_slog: "
+				"duplicate sessionlog entry ignored: csn=%s, uuid=%s\n",
+				op->o_log_prefix, se->se_csn.bv_val, uuidstr );
+			ch_free( se );
+			goto leave;
+		}
 		sl->sl_num++;
 		if ( !sl->sl_playing && sl->sl_num > sl->sl_size ) {
 			TAvlnode *edge = tavl_end( sl->sl_entries, TAVL_DIR_LEFT );
@@ -1726,6 +1732,7 @@ syncprov_add_slog( Operation *op )
 				sl->sl_num--;
 			}
 		}
+leave:
 		ldap_pvt_thread_rdwr_wunlock( &sl->sl_mutex );
 	}
 }