Index: kernel/arch/ppc32/include/exception.h
===================================================================
--- kernel/arch/ppc32/include/exception.h	(revision 7c31d201005bb12c2569505d071530dc62e85d21)
+++ kernel/arch/ppc32/include/exception.h	(revision 5b8016d235197748543b24787bd15cf1ba6864fb)
@@ -106,4 +106,6 @@
 }
 
+extern void decode_istate(istate_t *);
+
 #endif
 
Index: kernel/arch/ppc32/src/interrupt.c
===================================================================
--- kernel/arch/ppc32/src/interrupt.c	(revision 7c31d201005bb12c2569505d071530dc62e85d21)
+++ kernel/arch/ppc32/src/interrupt.c	(revision 5b8016d235197748543b24787bd15cf1ba6864fb)
@@ -50,4 +50,30 @@
 		:: [dec] "r" (1000)
 	);
+}
+
+void decode_istate(istate_t *istate)
+{
+	printf("r0 =%p\tr1 =%p\tr2 =%p\n", istate->r0, istate->sp, istate->r2);
+	printf("r3 =%p\tr4 =%p\tr5 =%p\n", istate->r3, istate->r4, istate->r5);
+	printf("r6 =%p\tr7 =%p\tr8 =%p\n", istate->r6, istate->r7, istate->r8);
+	printf("r9 =%p\tr10=%p\tr11=%p\n",
+	    istate->r9, istate->r10, istate->r11);
+	printf("r12=%p\tr13=%p\tr14=%p\n",
+	    istate->r12, istate->r13, istate->r14);
+	printf("r15=%p\tr16=%p\tr17=%p\n",
+	    istate->r15, istate->r16, istate->r17);
+	printf("r18=%p\tr19=%p\tr20=%p\n",
+	    istate->r18, istate->r19, istate->r20);
+	printf("r21=%p\tr22=%p\tr23=%p\n",
+	    istate->r21, istate->r22, istate->r23);
+	printf("r24=%p\tr25=%p\tr26=%p\n",
+	    istate->r24, istate->r25, istate->r26);
+	printf("r27=%p\tr28=%p\tr29=%p\n",
+	    istate->r27, istate->r28, istate->r29);
+	printf("r30=%p\tr31=%p\n", istate->r30, istate->r31);
+	printf("cr =%p\tpc =%p\tlr =%p\n", istate->cr, istate->pc, istate->lr);
+	printf("ctr=%p\txer=%p\tdar=%p\n",
+	    istate->ctr, istate->xer, istate->dar);
+	printf("srr1=%p\n", istate->srr1);
 }
 
Index: kernel/arch/ppc32/src/mm/tlb.c
===================================================================
--- kernel/arch/ppc32/src/mm/tlb.c	(revision 7c31d201005bb12c2569505d071530dc62e85d21)
+++ kernel/arch/ppc32/src/mm/tlb.c	(revision 5b8016d235197748543b24787bd15cf1ba6864fb)
@@ -111,11 +111,7 @@
 static void pht_refill_fail(uintptr_t badvaddr, istate_t *istate)
 {
-	const char *symbol = symtab_fmt_name_lookup(istate->pc);
-	const char *sym2 = symtab_fmt_name_lookup(istate->lr);
-	
-	fault_if_from_uspace(istate,
-	    "PHT Refill Exception on %p.", badvaddr);
-	panic("%p: PHT Refill Exception at %p (%s<-%s).", badvaddr,
-	    istate->pc, symbol, sym2);
+	fault_if_from_uspace(istate, "PHT Refill Exception on %p.", badvaddr);
+	panic_memtrap(istate, PF_ACCESS_READ, badvaddr,
+	    "PHT Refill Exception.");
 }
 
