DB                      *bdi_db;
 };
 
+/* From ldap_rq.h */
+struct re_s;
+
 struct bdb_info {
        DB_ENV          *bi_dbenv;
 
        int                     bi_txn_cp;
        u_int32_t       bi_txn_cp_min;
        u_int32_t       bi_txn_cp_kbyte;
-       void            *bi_txn_cp_task;
-       void            *bi_index_task;
-       void            *bi_cache_task;
+       struct re_s             *bi_txn_cp_task;
+       struct re_s             *bi_index_task;
+       struct re_s             *bi_cache_task;
 
        int                     bi_lock_detect;
        long            bi_shm_key;
 
                        if ( bdb->bi_cache_task ) {
                                if ( !ldap_pvt_runqueue_isrunning( &slapd_rq,
                                        bdb->bi_cache_task )) {
-                                       struct re_s *task = bdb->bi_cache_task;
-
                                        /* We want it to start right now */
-                                       task->interval.tv_sec = 0;
+                                       bdb->bi_cache_task->interval.tv_sec = 0;
                                        ldap_pvt_runqueue_resched( &slapd_rq, bdb->bi_cache_task,
                                                0 );
                                        /* But don't try to reschedule it while it's running */
-                                       task->interval.tv_sec = 3600;
+                                       bdb->bi_cache_task->interval.tv_sec = 3600;
                                }
                        } else {
                                bdb->bi_cache_task = ldap_pvt_runqueue_insert( &slapd_rq, 3600,