Index: kernel/generic/src/mm/slab.c
===================================================================
--- kernel/generic/src/mm/slab.c	(revision c992538abb6aee256d0a1e2c95967514b59cb965)
+++ kernel/generic/src/mm/slab.c	(revision 2d3ddada69970e73410065f93cd44b473eac1db0)
@@ -405,6 +405,4 @@
 /** Find full magazine, set it as current and return it
  *
- * Assume cpu_magazine lock is held
- *
  */
 static slab_magazine_t *get_full_current_mag(slab_cache_t *cache)
@@ -412,4 +410,6 @@
 	slab_magazine_t *cmag = cache->mag_cache[CPU->id].current;
 	slab_magazine_t *lastmag = cache->mag_cache[CPU->id].last;
+
+	ASSERT(spinlock_locked(&cache->mag_cache[CPU->id].lock));
 	
 	if (cmag) { /* First try local CPU magazines */
@@ -467,6 +467,4 @@
  * or NULL if no empty magazine is available and cannot be allocated
  *
- * Assume mag_cache[CPU->id].lock is held
- *
  * We have 2 magazines bound to processor.
  * First try the current.
@@ -480,4 +478,6 @@
 	slab_magazine_t *lastmag = cache->mag_cache[CPU->id].last;
 	
+	ASSERT(spinlock_locked(&cache->mag_cache[CPU->id].lock));
+
 	if (cmag) {
 		if (cmag->busy < cmag->size)
Index: kernel/generic/src/proc/scheduler.c
===================================================================
--- kernel/generic/src/proc/scheduler.c	(revision c992538abb6aee256d0a1e2c95967514b59cb965)
+++ kernel/generic/src/proc/scheduler.c	(revision 2d3ddada69970e73410065f93cd44b473eac1db0)
@@ -379,6 +379,4 @@
  * switch to a new thread.
  *
- * Assume THREAD->lock is held.
- *
  */
 void scheduler_separated_stack(void)
@@ -388,4 +386,5 @@
 	as_t *old_as = AS;
 	
+	ASSERT(!THREAD || irq_spinlock_locked(&THREAD->lock));
 	ASSERT(CPU != NULL);
 	
Index: kernel/generic/src/proc/thread.c
===================================================================
--- kernel/generic/src/proc/thread.c	(revision c992538abb6aee256d0a1e2c95967514b59cb965)
+++ kernel/generic/src/proc/thread.c	(revision 2d3ddada69970e73410065f93cd44b473eac1db0)
@@ -371,5 +371,4 @@
  *
  * Detach thread from all queues, cpus etc. and destroy it.
- * Assume thread->lock is held!
  *
  * @param thread  Thread to be destroyed.
@@ -380,4 +379,5 @@
 void thread_destroy(thread_t *thread, bool irq_res)
 {
+	ASSERT(irq_spinlock_locked(&thread->lock));
 	ASSERT((thread->state == Exiting) || (thread->state == Lingering));
 	ASSERT(thread->task);
