Index: arch/amd64/src/proc/task.c
===================================================================
--- arch/amd64/src/proc/task.c	(revision 2cb5e6478ff8e1d5cf947da6398d6e2d496c27e4)
+++ arch/amd64/src/proc/task.c	(revision 6f9a9bca0eb57eab9af41bd5a627f7f7fdcdc276)
@@ -28,4 +28,5 @@
 
 #include <proc/task.h>
+#include <mm/slab.h>
 #include <arch/types.h>
 
@@ -39,2 +40,12 @@
 	bitmap_initialize(&t->arch.iomap, NULL, 0);
 }
+
+/** Perform amd64 specific task destruction.
+ *
+ * @param t Task to be initialized.
+ */
+void task_destroy_arch(task_t *t)
+{
+	if (t->arch.iomap.map)
+		free(t->arch.iomap.map);
+}
Index: arch/ia32/src/proc/task.c
===================================================================
--- arch/ia32/src/proc/task.c	(revision 2cb5e6478ff8e1d5cf947da6398d6e2d496c27e4)
+++ arch/ia32/src/proc/task.c	(revision 6f9a9bca0eb57eab9af41bd5a627f7f7fdcdc276)
@@ -30,4 +30,5 @@
 #include <arch/types.h>
 #include <adt/bitmap.h>
+#include <mm/slab.h>
 
 /** Perform ia32 specific task initialization.
@@ -40,2 +41,12 @@
 	bitmap_initialize(&t->arch.iomap, NULL, 0);
 }
+
+/** Perform ia32 specific task destruction.
+ *
+ * @param t Task to be initialized.
+ */
+void task_destroy_arch(task_t *t)
+{
+	if (t->arch.iomap.map)
+		free(t->arch.iomap.map);
+}
Index: arch/ia64/include/proc/task.h
===================================================================
--- arch/ia64/include/proc/task.h	(revision 2cb5e6478ff8e1d5cf947da6398d6e2d496c27e4)
+++ arch/ia64/include/proc/task.h	(revision 6f9a9bca0eb57eab9af41bd5a627f7f7fdcdc276)
@@ -34,4 +34,5 @@
 
 #define task_create_arch(t)
+#define task_destroy_arch(t)
 
 #endif
Index: arch/mips32/include/proc/task.h
===================================================================
--- arch/mips32/include/proc/task.h	(revision 2cb5e6478ff8e1d5cf947da6398d6e2d496c27e4)
+++ arch/mips32/include/proc/task.h	(revision 6f9a9bca0eb57eab9af41bd5a627f7f7fdcdc276)
@@ -34,4 +34,5 @@
 
 #define task_create_arch(t)
+#define task_destroy_arch(t)
 
 #endif
Index: arch/ppc32/include/proc/task.h
===================================================================
--- arch/ppc32/include/proc/task.h	(revision 2cb5e6478ff8e1d5cf947da6398d6e2d496c27e4)
+++ arch/ppc32/include/proc/task.h	(revision 6f9a9bca0eb57eab9af41bd5a627f7f7fdcdc276)
@@ -34,4 +34,5 @@
 
 #define task_create_arch(t)
+#define task_destroy_arch(t)
 
 #endif
Index: arch/ppc64/include/proc/task.h
===================================================================
--- arch/ppc64/include/proc/task.h	(revision 2cb5e6478ff8e1d5cf947da6398d6e2d496c27e4)
+++ arch/ppc64/include/proc/task.h	(revision 6f9a9bca0eb57eab9af41bd5a627f7f7fdcdc276)
@@ -34,4 +34,5 @@
 
 #define task_create_arch(t)
+#define task_destroy_arch(t)
 
 #endif
Index: arch/sparc64/include/proc/task.h
===================================================================
--- arch/sparc64/include/proc/task.h	(revision 2cb5e6478ff8e1d5cf947da6398d6e2d496c27e4)
+++ arch/sparc64/include/proc/task.h	(revision 6f9a9bca0eb57eab9af41bd5a627f7f7fdcdc276)
@@ -34,4 +34,5 @@
 
 #define task_create_arch(t)
+#define task_destroy_arch(t)
 
 #endif
