Index: kernel/generic/src/proc/task.c
===================================================================
--- kernel/generic/src/proc/task.c	(revision e7c4115de0a5bf1dd17b4e273352cc4607d67e03)
+++ kernel/generic/src/proc/task.c	(revision 49115ac4234c04a6a0e05c81930353801ea20899)
@@ -84,4 +84,5 @@
 static void task_kill_internal(task_t *);
 static int tsk_constructor(void *, unsigned int);
+static size_t tsk_destructor(void *obj);
 
 /** Initialize kernel tasks support.
@@ -93,5 +94,5 @@
 	avltree_create(&tasks_tree);
 	task_slab = slab_cache_create("task_t", sizeof(task_t), 0,
-	    tsk_constructor, NULL, 0);
+	    tsk_constructor, tsk_destructor, 0);
 }
 
@@ -167,5 +168,5 @@
 	
 	list_initialize(&task->threads);
-	
+
 	task->kobject = malloc(sizeof(kobject_t) * MAX_KERNEL_OBJECTS, 0);
 	
@@ -182,4 +183,12 @@
 #endif
 	
+	return 0;
+}
+
+size_t tsk_destructor(void *obj)
+{
+	task_t *task = (task_t *) obj;
+	
+	free(task->kobject);
 	return 0;
 }
@@ -285,6 +294,4 @@
 	as_release(task->as);
 	
-	free(task->kobject);
-
 	slab_free(task_slab, task);
 }
