Vlad, I think have found the problem in server.
Look at this: -------- ISC_STATUS rem_port::que_events(P_EVENT * stuff, PACKET* sendL) { ... Rvnt* event; for (event = rdb->rdb_events; event; event = event->rvnt_next) { if (!event->rvnt_iface) { event->rvnt_destroyed = 0; break; } } if (!event) { event = FB_NEW Rvnt; #ifdef DEBUG_REMOTE_MEMORY printf("que_events(server) allocate event %x\n", event); #endif event->rvnt_next = rdb->rdb_events; rdb->rdb_events = event; event->rvnt_callback = FB_NEW Callback(rdb, event); } -------- This code runs concurrently and find the same empty slot for simultaneous events being registered. Adriano ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel