int                     rc = 0;
        BackendInfo             *mi;
        monitor_extra_t         *mbe;
-       struct berval dummy = BER_BVC("");
 
        if ( !SLAP_DBMONITORING( be ) ) {
                return 0;
        rc = mbe->register_database( be, &bdb->bi_monitor.bdm_ndn );
        if ( rc == 0 ) {
                rc = mbe->register_entry_attrs( &bdb->bi_monitor.bdm_ndn, a, cb,
-                       &dummy, 0, &dummy );
+                       NULL, 0, NULL );
        }
 
 cleanup:;
 
                cb->mc_free = ldap_back_monitor_free;
                cb->mc_private = (void *)li;
 
-               rc = mbe->register_entry_attrs( &ms->mss_ndn, a, cb, NULL, 0, NULL );
+               rc = mbe->register_entry_attrs( &ms->mss_ndn, a, cb, NULL, -1, NULL );
 
                attr_free( a->a_next );
                attr_free( a );
 
        int                     rc = 0;
        BackendInfo             *mi;
        monitor_extra_t         *mbe;
-       struct berval dummy = BER_BVC("");
 
        if ( !SLAP_DBMONITORING( be ) ) {
                return 0;
        rc = mbe->register_database( be, &mdb->mi_monitor.mdm_ndn );
        if ( rc == 0 ) {
                rc = mbe->register_entry_attrs( &mdb->mi_monitor.mdm_ndn, a, cb,
-                       &dummy, 0, &dummy );
+                       NULL, -1, NULL );
        }
 
 cleanup:;
 
        monitor_info_t  *mi;
        struct berval   ndn = BER_BVNULL;
        char            *fname = ( a == NULL ? "callback" : "attrs" );
+       struct berval   empty_bv = BER_BVC("");
+
+       if ( nbase == NULL ) nbase = &empty_bv;
+       if ( filter == NULL ) filter = &empty_bv;
 
        if ( be_monitor == NULL ) {
                char            buf[ SLAP_TEXT_BUFLEN ];
 
        int                     rc = 0;
        BackendInfo             *mi;
        monitor_extra_t         *mbe;
-       struct berval           dummy = BER_BVC( "" );
 
        if ( !SLAP_DBMONITORING( be ) ) {
                return 0;
        rc = mbe->register_overlay( be, on, &cm->monitor_ndn );
        if ( rc == 0 ) {
                rc = mbe->register_entry_attrs( &cm->monitor_ndn, a, cb,
-                       &dummy, -1, &dummy);
+                       NULL, -1, NULL);
        }
 
 cleanup:;