Index: arch/mips32/src/mips32.c
===================================================================
--- arch/mips32/src/mips32.c	(revision 9f525639659c979c952ae9372c881791de6d13aa)
+++ arch/mips32/src/mips32.c	(revision 0f250f9bff41704344ca927ecc587c2eb450e9ee)
@@ -38,4 +38,5 @@
 #include <memstr.h>
 #include <proc/thread.h>
+#include <proc/uarg.h>
 #include <print.h>
 
@@ -121,5 +122,5 @@
 __address supervisor_sp __attribute__ ((section (".text")));
 
-void userspace(uspace_arg_t *uarg)
+void userspace(uspace_arg_t *kernel_uarg)
 {
 	/* EXL=1, UM=1, IE=1 */
@@ -127,6 +128,6 @@
 					      cp0_status_um_bit |
 					      cp0_status_ie_enabled_bit));
-	cp0_epc_write(uarg->uspace_entry);
-	userspace_asm(uarg->uspace_stack+PAGE_SIZE);
+	cp0_epc_write((__address) kernel_uarg->uspace_entry);
+	userspace_asm(((__address) kernel_uarg->uspace_stack+PAGE_SIZE), (__address) kernel_uarg->uspace_uarg);
 	while (1)
 		;
Index: arch/mips32/src/start.S
===================================================================
--- arch/mips32/src/start.S	(revision 9f525639659c979c952ae9372c881791de6d13aa)
+++ arch/mips32/src/start.S	(revision 0f250f9bff41704344ca927ecc587c2eb450e9ee)
@@ -227,5 +227,6 @@
 userspace_asm:
 	add $sp, $a0, 0
-	eret
-	nop
-
+	add $v0, $a1, 0
+	eret
+	nop
+
