Hi, In continuing to replace, where appropriate, code with msleep() calls, I ran across the following files / functions, which do not invoke set_current_state() before schedule_timeout(), which causes the latter to return immediately: drivers/isdn/icn/icn.c::icn_command() drivers/isdn/isdnloop/isdnloop.c::isdnloop_command() Also, in drivers/isdn/icn/icn.c::SLEEP() I am wondering if the macro must necessarily run in TASK_INTERRUPTIBLE? If not, then I can replace it directly with a call to msleep(). Thanks, Nish