Index: kernel/generic/include/synch/syswaitq.h
===================================================================
--- kernel/generic/include/synch/syswaitq.h	(revision 0b5203bfbdafa8ef8abc2bd7521c6fd282f677e9)
+++ kernel/generic/include/synch/syswaitq.h	(revision 45c8eea59f6dced36c60fa4742c6087a34cd81bd)
@@ -46,4 +46,5 @@
 extern sys_errno_t sys_waitq_sleep(cap_waitq_handle_t, uintptr_t);
 extern sys_errno_t sys_waitq_wakeup(cap_waitq_handle_t);
+extern sys_errno_t sys_waitq_destroy(cap_waitq_handle_t);
 
 #endif
Index: kernel/generic/src/synch/syswaitq.c
===================================================================
--- kernel/generic/src/synch/syswaitq.c	(revision 0b5203bfbdafa8ef8abc2bd7521c6fd282f677e9)
+++ kernel/generic/src/synch/syswaitq.c	(revision 45c8eea59f6dced36c60fa4742c6087a34cd81bd)
@@ -123,4 +123,20 @@
 }
 
+/** Destroy a waitq
+ *
+ * @param whandle  Waitq capability handle of the waitq to be destroyed.
+ *
+ * @return         Error code.
+ */
+sys_errno_t sys_waitq_destroy(cap_waitq_handle_t whandle)
+{
+	kobject_t *kobj = cap_unpublish(TASK, whandle, KOBJECT_TYPE_WAITQ);
+	if (!kobj)
+		return (sys_errno_t) ENOENT;
+	kobject_put(kobj);
+	cap_free(TASK, whandle);
+	return EOK;
+}
+
 /** Sleep in the waitq
  *
Index: kernel/generic/src/syscall/syscall.c
===================================================================
--- kernel/generic/src/syscall/syscall.c	(revision 0b5203bfbdafa8ef8abc2bd7521c6fd282f677e9)
+++ kernel/generic/src/syscall/syscall.c	(revision 45c8eea59f6dced36c60fa4742c6087a34cd81bd)
@@ -139,4 +139,5 @@
 	[SYS_WAITQ_SLEEP] = (syshandler_t) sys_waitq_sleep,
 	[SYS_WAITQ_WAKEUP] = (syshandler_t) sys_waitq_wakeup,
+	[SYS_WAITQ_DESTROY] = (syshandler_t) sys_waitq_destroy,
 	[SYS_SMC_COHERENCE] = (syshandler_t) sys_smc_coherence,
 
