diff --git a/qemu-fix-broken-elf-coredump-build-on-ppc.patch b/qemu-fix-broken-elf-coredump-build-on-ppc.patch
index 69bf495..1871e94 100644
--- a/qemu-fix-broken-elf-coredump-build-on-ppc.patch
+++ b/qemu-fix-broken-elf-coredump-build-on-ppc.patch
@@ -1,4 +1,4 @@
-From 028b1596140ca9f0965808ed8cbd599659ded728 Mon Sep 17 00:00:00 2001
+From 7697e70aaabc5b0ab3426274652db09117f8f7fe Mon Sep 17 00:00:00 2001
 From: Mark McLoughlin <markmc@redhat.com>
 Date: Mon, 29 Jun 2009 14:49:03 +0100
 Subject: [PATCH] Fix broken ELF coredump build on ppc
@@ -43,11 +43,11 @@ definitions. Other arches seem to avoid doing that.
 
 Signed-off-by: Mark McLoughlin <markmc@redhat.com>
 ---
- linux-user/elfload.c |    6 ++++++
- 1 files changed, 6 insertions(+), 0 deletions(-)
+ linux-user/elfload.c |    8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
 
 diff --git a/linux-user/elfload.c b/linux-user/elfload.c
-index d31cca7..1b3fbe4 100644
+index d31cca7..f6488c7 100644
 --- a/linux-user/elfload.c
 +++ b/linux-user/elfload.c
 @@ -134,6 +134,7 @@ static inline void init_thread(struct target_pt_regs *regs, struct image_info *i
@@ -74,15 +74,20 @@ index d31cca7..1b3fbe4 100644
  typedef target_ulong    elf_greg_t;
  typedef uint16_t        target_uid_t;
  typedef uint16_t        target_gid_t;
-@@ -249,6 +252,7 @@ static void elf_core_copy_regs(elf_gregset_t *regs, const CPUState *env)
+@@ -246,9 +249,12 @@ static void elf_core_copy_regs(elf_gregset_t *regs, const CPUState *env)
+     (*regs)[15] = env->regs[R_ESP];
+     (*regs)[16] = env->segs[R_SS].selector & 0xffff;
+ }
++#endif /* FIX_BROKEN_PPC_BUILD */
  #endif
  
++#ifdef FIX_BROKEN_PPC_BUILD
  #define USE_ELF_CORE_DUMP
 +#endif /* FIX_BROKEN_PPC_BUILD */
  #define ELF_EXEC_PAGESIZE	4096
  
  #endif
-@@ -286,6 +290,7 @@ static inline void init_thread(struct target_pt_regs *regs, struct image_info *i
+@@ -286,6 +292,7 @@ static inline void init_thread(struct target_pt_regs *regs, struct image_info *i
      regs->ARM_r10 = infop->start_data;
  }
  
@@ -90,7 +95,7 @@ index d31cca7..1b3fbe4 100644
  typedef uint32_t elf_greg_t;
  typedef uint16_t target_uid_t;
  typedef uint16_t target_gid_t;
-@@ -318,6 +323,7 @@ static void elf_core_copy_regs(elf_gregset_t *regs, const CPUState *env)
+@@ -318,6 +325,7 @@ static void elf_core_copy_regs(elf_gregset_t *regs, const CPUState *env)
  }
  
  #define USE_ELF_CORE_DUMP