Index: kernel/arch/sparc64/src/proc/thread.c
===================================================================
--- kernel/arch/sparc64/src/proc/thread.c	(revision 2277e03b97a6950736870a381ad825874af27449)
+++ kernel/arch/sparc64/src/proc/thread.c	(revision fb4a424279571d50c7676c2c88d543bdf1bf68b7)
@@ -39,4 +39,6 @@
 #include <align.h>
 
+slab_cache_t *uwb_cache = NULL;
+
 void thr_constructor_arch(thread_t *t)
 {
@@ -55,5 +57,6 @@
 		 * belonging to a killed thread.
 		 */
-		free((uint8_t *) ALIGN_DOWN(uw_buf, UWB_ALIGNMENT));
+		slab_free(uwb_cache, (uint8_t *) ALIGN_DOWN(uw_buf,
+		    UWB_ALIGNMENT));
 	}
 }
@@ -67,5 +70,5 @@
 		 * returned from the slab allocator doesn't have any.
 		 */
-		t->arch.uspace_window_buffer = malloc(UWB_ASIZE, 0);
+		t->arch.uspace_window_buffer = slab_alloc(uwb_cache, 0);
 	} else {
 		uintptr_t uw_buf = (uintptr_t) t->arch.uspace_window_buffer;
@@ -76,5 +79,5 @@
 		 */
 		t->arch.uspace_window_buffer = (uint8_t *) ALIGN_DOWN(uw_buf,
-		    UWB_ASIZE);
+		    UWB_ALIGNMENT);
 	}
 }
