Index: kernel/generic/src/proc/task.c
===================================================================
--- kernel/generic/src/proc/task.c	(revision da1bafb8cf9a3b3be8ef21bc114daaa476a85190)
+++ kernel/generic/src/proc/task.c	(revision 179d052bd8f476fcf6318dc690211df13a60f86d)
@@ -351,4 +351,7 @@
 task_t *task_find_by_id(task_id_t id)
 {
+	ASSERT(interrupts_disabled());
+	ASSERT(irq_spinlock_locked(&tasks_lock));
+
 	avltree_node_t *node =
 	    avltree_search(&tasks_tree, (avltree_key_t) id);
@@ -362,5 +365,5 @@
 /** Get accounting data of given task.
  *
- * Note that task lock of 't' must be already held and interrupts must be
+ * Note that task lock of 'task' must be already held and interrupts must be
  * already disabled.
  *
@@ -372,4 +375,7 @@
 void task_get_accounting(task_t *task, uint64_t *ucycles, uint64_t *kcycles)
 {
+	ASSERT(interrupts_disabled());
+	ASSERT(irq_spinlock_locked(&task->lock));
+
 	/* Accumulated values of task */
 	uint64_t uret = task->ucycles;
Index: kernel/generic/src/proc/thread.c
===================================================================
--- kernel/generic/src/proc/thread.c	(revision da1bafb8cf9a3b3be8ef21bc114daaa476a85190)
+++ kernel/generic/src/proc/thread.c	(revision 179d052bd8f476fcf6318dc690211df13a60f86d)
@@ -683,4 +683,7 @@
 bool thread_exists(thread_t *thread)
 {
+	ASSERT(interrupts_disabled());
+	ASSERT(irq_spinlock_locked(&threads_lock));
+
 	avltree_node_t *node =
 	    avltree_search(&threads_tree, (avltree_key_t) ((uintptr_t) thread));
@@ -700,4 +703,7 @@
 {
 	uint64_t time = get_cycle();
+
+	ASSERT(interrupts_disabled());
+	ASSERT(irq_spinlock_locked(&THREAD->lock));
 	
 	if (user)
@@ -735,4 +741,7 @@
 thread_t *thread_find_by_id(thread_id_t thread_id)
 {
+	ASSERT(interrupts_disabled());
+	ASSERT(irq_spinlock_locked(&threads_lock));
+
 	thread_iterator_t iterator;
 	
