Hi, When you get_module the very first thing that seems to be called is the B_MODULE_INIT: my code: static status_t std_ops(int32 op, ...) { dprintf("std_ops 0x%x\n", op); switch(op) { case B_MODULE_INIT: mpu_readlock = create_sem(0, "mpu401 read"); //set_sem_owner(mpu_readlock, B_SYSTEM_TEAM); if (mpu_readlock < B_OK) return mpu_readlock; dprintf("mpu401: B_MODULE_INIT sem_id:%d\n",mpu_readlock); if (get_module(B_ISA_MODULE_NAME, (module_info **)&gISA) < B_OK) { dprintf("could not get ISA module\n"); return (B_ERROR); } return B_OK; case B_MODULE_UNINIT: ..etc.. } Is there a way to determine what is being passed to the 'std_ops( int32, ...)' function? I'm not clear what the '...' could be or how it works. I'm returning a B_OK, but it seems that for the AWE64, there is something more that the caller is expecting from the B_MODULE_INIT. The R5 module works, but with my module code the AWE64 driver does not continue initializing after this point. Greg