diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index e9fa2be22475a7bfba3d204ee286c54abf45d3c9..2426ecb98acde12e8867e8f58ce8c5268f139f92 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,8 @@
+2005-08-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	* hppa-dis.c (print_insn_hppa): Don't print '%' before register names.
+	Use "rp" instead of "%r2" in "b,l" insns.
+
 2005-08-12 Martin Schwidefsky  <schwidefsky@de.ibm.com>
 
 	* s390-dis.c (print_insn_s390): Print unsigned operands with %u.
diff --git a/opcodes/hppa-dis.c b/opcodes/hppa-dis.c
index 172be23e3b0f264d68bd202e8c8c93097476aad9..65294625509256053099f5a292953462339bd91c 100644
--- a/opcodes/hppa-dis.c
+++ b/opcodes/hppa-dis.c
@@ -952,12 +952,12 @@ print_insn_hppa (bfd_vma memaddr, disassemble_info *info)
 
 		case 'Z':
 		  /* addil %r1 implicit output.  */
-		  (*info->fprintf_func) (info->stream, "%%r1");
+		  fputs_filtered ("r1", info);
 		  break;
 
 		case 'Y':
 		  /* be,l %sr0,%r31 implicit output.  */
-		  (*info->fprintf_func) (info->stream, "%%sr0,%%r31");
+		  fputs_filtered ("sr0,r31", info);
 		  break;
 
 		case '@':
@@ -973,7 +973,7 @@ print_insn_hppa (bfd_vma memaddr, disassemble_info *info)
 					 GET_FIELD (insn, 22, 25));
 		  break;
 		case '!':
-		  (*info->fprintf_func) (info->stream, "%%sar");
+		  fputs_filtered ("sar", info);
 		  break;
 		case 'p':
 		  (*info->fprintf_func) (info->stream, "%d",
@@ -1219,7 +1219,7 @@ print_insn_hppa (bfd_vma memaddr, disassemble_info *info)
 		    (memaddr + 8 + extract_22 (insn), info);
 		  break;
 		case 'L':
-		  fputs_filtered (",%r2", info);
+		  fputs_filtered (",rp", info);
 		  break;
 		default:
 		  (*info->fprintf_func) (info->stream, "%c", *s);