}
        }
 
-       return atoi(p+1);
+       return atoi(p+1)+1;
 }
 
 
   es->rotate_index = filename ? fname2index(filename) : 0;
   IL_EVENT_ID_FREE(job_id);
 
-  il_log(LOG_DEBUG, "  creating event store for id %s, filename %s\n", job_id_s, es->event_file_name);
+  il_log(LOG_DEBUG, "  creating event store for id %s, filename %s, rotate index %d\n", 
+        job_id_s, es->event_file_name, es->rotate_index);
 
   if(pthread_rwlock_init(&es->commit_lock, NULL))
           abort();
        /* change names in event_store */
        es->event_file_name = strdup(newname);
        es->control_file_name = astrcat(newname, ".ctl");
+       es->rotate_index = num + 1;
 
        return(0);
 }
 
   while(p) {
     if(strcmp(p->es->job_id_s, job_id_s) == 0) {
-               es = p->es;
+           es = p->es;
            d = p;
        // if filename was given, compare it as well
-       if(filename == NULL || strcmp(p->es->event_file_name, filename) != 0) {
+           if((filename == NULL && p->es->rotate_index == 0) || 
+              (filename != NULL && strcmp(p->es->event_file_name, filename) == 0)) {
                if(pthread_rwlock_rdlock(&es->use_lock))
                        abort();
                if(pthread_rwlock_unlock(&store_list_lock))
                        abort();
                return(es);
        }
-       }
+    }
     p = p->next;
   }
 
 
        else 
 #endif
                ret = event_store_sync(es, offset);
+       /* no longer informative:
        il_log(LOG_DEBUG, "  syncing event store at %d with event at %d, result %d\n", es->offset, offset, ret);
+       */
        if(ret < 0) {
                il_log(LOG_ERR, "    handle_msg: error syncing event store:\n      %s\n", error_get_msg());
                /* XXX should error during event store recovery cause us to drop the message? */