Index: uspace/lib/libc/arch/ppc32/src/entry.s
===================================================================
--- uspace/lib/libc/arch/ppc32/src/entry.s	(revision adb5fe3a0d41ea1a2ddb715f4235287c3745c43b)
+++ uspace/lib/libc/arch/ppc32/src/entry.s	(revision c1b455ef81f0a7d909a50b79a5328d46c6140609)
@@ -35,9 +35,10 @@
 ## User-space task entry point
 #
-# r3 contains the PCB pointer
+# r6 contains the PCB pointer
 #
 __entry:
 	# Pass the PCB pointer to __main() as the first argument.
-	# Since the first argument is passed in r3, no operation is needed.
+	# The first argument is passed in r3.
+	mr %r3, %r6
 	bl __main
 
Index: uspace/srv/loader/arch/ppc32/ppc32.s
===================================================================
--- uspace/srv/loader/arch/ppc32/ppc32.s	(revision adb5fe3a0d41ea1a2ddb715f4235287c3745c43b)
+++ uspace/srv/loader/arch/ppc32/ppc32.s	(revision c1b455ef81f0a7d909a50b79a5328d46c6140609)
@@ -37,4 +37,4 @@
 program_run:
 	mtctr %r3
-	mr %r3, %r4	# Pass pcb to the entry point in %r3
+	mr %r6, %r4	# Pass pcb to the entry point in %r6
 	bctr
