--- a/src/drv_tapi_linux.c
+++ b/src/drv_tapi_linux.c
@@ -3311,7 +3311,7 @@ static void __exit ifx_tapi_module_exit(
    /* as we are using work queues to schedule events from the interrupt
       context to the process context, we use work queues in case of
       Linux 2.6. they must be flushed on driver unload... */
-   flush_scheduled_work();
+   flush_workqueue(pTapiWq);
    destroy_workqueue(pTapiWq);
 #endif /* LINUX_2_6 */
 
