diff --git a/cpu-all.h b/cpu-all.h
index d238285..2fc2f9a 100644
--- a/cpu-all.h
+++ b/cpu-all.h
@@ -799,7 +799,7 @@
 /* Return the physical page corresponding to a virtual one. Use it
    only for debugging because no protection checks are done. Return -1
    if no page found. */
-target_ulong cpu_get_phys_page_debug(CPUState *env, target_ulong addr);
+target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr);
 
 #define CPU_LOG_TB_OUT_ASM (1 << 0) 
 #define CPU_LOG_TB_IN_ASM  (1 << 1)
diff --git a/exec.c b/exec.c
index 2467b62..084b844 100644
--- a/exec.c
+++ b/exec.c
@@ -1030,7 +1030,8 @@
 #if defined(TARGET_HAS_ICE)
 static void breakpoint_invalidate(CPUState *env, target_ulong pc)
 {
-    target_ulong addr, pd;
+    target_phys_addr_t addr;
+    target_ulong pd;
     ram_addr_t ram_addr;
     PhysPageDesc *p;
 
@@ -2574,7 +2575,8 @@
                         uint8_t *buf, int len, int is_write)
 {
     int l;
-    target_ulong page, phys_addr;
+    target_phys_addr_t phys_addr;
+    target_ulong page;
 
     while (len > 0) {
         page = addr & TARGET_PAGE_MASK;
diff --git a/target-alpha/helper.c b/target-alpha/helper.c
index 0049c39..98200d9 100644
--- a/target-alpha/helper.c
+++ b/target-alpha/helper.c
@@ -39,7 +39,7 @@
     return 1;
 }
 
-target_ulong cpu_get_phys_page_debug (CPUState *env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug (CPUState *env, target_ulong addr)
 {
     return addr;
 }
@@ -51,7 +51,7 @@
 
 #else
 
-target_ulong cpu_get_phys_page_debug (CPUState *env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug (CPUState *env, target_ulong addr)
 {
     return -1;
 }
diff --git a/target-arm/helper.c b/target-arm/helper.c
index 242dd28..111b846 100644
--- a/target-arm/helper.c
+++ b/target-arm/helper.c
@@ -126,7 +126,7 @@
     return 1;
 }
 
-target_ulong cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
 {
     return addr;
 }
@@ -441,7 +441,7 @@
     return 1;
 }
 
-target_ulong cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
 {
     uint32_t phys_addr;
     int prot;
diff --git a/target-i386/helper2.c b/target-i386/helper2.c
index dc6a500..f05a284 100644
--- a/target-i386/helper2.c
+++ b/target-i386/helper2.c
@@ -578,7 +578,7 @@
     return 1;
 }
 
-target_ulong cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
 {
     return addr;
 }
@@ -876,7 +876,7 @@
     return 1;
 }
 
-target_ulong cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
 {
     uint32_t pde_addr, pte_addr;
     uint32_t pde, pte, paddr, page_offset, page_size;
diff --git a/target-m68k/translate.c b/target-m68k/translate.c
index 5d47c54..3b25635 100644
--- a/target-m68k/translate.c
+++ b/target-m68k/translate.c
@@ -2738,7 +2738,7 @@
 }
 
 /* ??? */
-target_ulong cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
 {
     return addr;
 }
diff --git a/target-mips/helper.c b/target-mips/helper.c
index d48c32b..c23e9c6 100644
--- a/target-mips/helper.c
+++ b/target-mips/helper.c
@@ -141,12 +141,12 @@
 }
 
 #if defined(CONFIG_USER_ONLY) 
-target_ulong cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
 {
     return addr;
 }
 #else
-target_ulong cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
 {
     target_ulong phys_addr;
     int prot;
diff --git a/target-ppc/helper.c b/target-ppc/helper.c
index 1d973dc..69ed260 100644
--- a/target-ppc/helper.c
+++ b/target-ppc/helper.c
@@ -60,7 +60,7 @@
     return 1;
 }
 
-target_ulong cpu_get_phys_page_debug (CPUState *env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug (CPUState *env, target_ulong addr)
 {
     return addr;
 }
@@ -821,7 +821,7 @@
     return ret;
 }
 
-target_ulong cpu_get_phys_page_debug (CPUState *env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug (CPUState *env, target_ulong addr)
 {
     mmu_ctx_t ctx;
 
diff --git a/target-sh4/helper.c b/target-sh4/helper.c
index 1839c96..1063ece 100644
--- a/target-sh4/helper.c
+++ b/target-sh4/helper.c
@@ -53,7 +53,7 @@
     return 1;
 }
 
-target_ulong cpu_get_phys_page_debug(CPUState * env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug(CPUState * env, target_ulong addr)
 {
     return addr;
 }
@@ -429,7 +429,7 @@
     return tlb_set_page(env, address, physical, prot, is_user, is_softmmu);
 }
 
-target_ulong cpu_get_phys_page_debug(CPUState * env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug(CPUState * env, target_ulong addr)
 {
     target_ulong physical;
     int prot;
diff --git a/target-sparc/translate.c b/target-sparc/translate.c
index 0d71da3..e51a2e4 100644
--- a/target-sparc/translate.c
+++ b/target-sparc/translate.c
@@ -3012,7 +3012,7 @@
 }
 
 #if defined(CONFIG_USER_ONLY)
-target_ulong cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
 {
     return addr;
 }
@@ -3022,7 +3022,7 @@
                                  int *access_index, target_ulong address, int rw,
                                  int is_user);
 
-target_ulong cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
+target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
 {
     target_phys_addr_t phys_addr;
     int prot, access_index;
