diff --git a/.cvsignore b/.cvsignore
index 995d912..0d7a480 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-qemu-0.6.1.tar.gz
+qemu-0.7.0.tar.gz
diff --git a/qemu-0.6.1-build.patch b/qemu-0.6.1-build.patch
deleted file mode 100644
index 9b130bc..0000000
--- a/qemu-0.6.1-build.patch
+++ /dev/null
@@ -1,48 +0,0 @@
---- qemu-0.6.1/Makefile.strip	2005-02-13 14:38:23.000000000 +0000
-+++ qemu-0.6.1/Makefile	2005-02-13 14:42:27.000000000 +0000
-@@ -1,6 +1,6 @@
- -include config-host.mak
- 
--CFLAGS=-Wall -O2 -g -fno-strict-aliasing 
-+CFLAGS=$(RPM_OPT_FLAGS) -Wall -fno-strict-aliasing 
- ifdef CONFIG_DARWIN
- CFLAGS+= -mdynamic-no-pic
- endif
-@@ -45,7 +45,7 @@
- install: all 
- 	mkdir -p "$(bindir)"
- ifndef CONFIG_WIN32
--	install -m 755 -s $(TOOLS) "$(bindir)"
-+	install -m 755 $(TOOLS) "$(bindir)"
- endif
- 	mkdir -p "$(datadir)"
- 	install -m 644 pc-bios/bios.bin pc-bios/vgabios.bin \
---- qemu-0.6.1/Makefile.target.strip	2005-02-13 14:38:19.000000000 +0000
-+++ qemu-0.6.1/Makefile.target	2005-02-13 14:42:49.000000000 +0000
-@@ -7,7 +7,7 @@
- VPATH+=:$(SRC_PATH)/linux-user
- DEFINES+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ARCH)
- endif
--CFLAGS=-Wall -O2 -g -fno-strict-aliasing
-+CFLAGS=$(RPM_OPT_FLAGS) -Wall -fno-strict-aliasing
- LDFLAGS=-g
- LIBS=
- HELPER_CFLAGS=$(CFLAGS)
-@@ -148,7 +148,7 @@
- ifeq ($(ARCH),alpha)
- # -msmall-data is not used because we want two-instruction relocations
- # for the constant constructions
--OP_CFLAGS=-Wall -O2 -g
-+OP_CFLAGS=$(RPM_OPT_FLAGS) -Wall
- # Ensure there's only a single GP
- CFLAGS += -msmall-data
- LDFLAGS+=-Wl,-T,$(SRC_PATH)/alpha.ld
-@@ -397,7 +397,7 @@
- 
- install: all 
- ifneq ($(PROGS),)
--	install -m 755 -s $(PROGS) "$(bindir)"
-+	install -m 755 $(PROGS) "$(bindir)"
- endif
- 
- ifneq ($(wildcard .depend),)
diff --git a/qemu-0.7.0-build.patch b/qemu-0.7.0-build.patch
new file mode 100644
index 0000000..97ea8dd
--- /dev/null
+++ b/qemu-0.7.0-build.patch
@@ -0,0 +1,39 @@
+--- qemu-0.7.0/Makefile.orig	2005-04-27 21:52:05.000000000 +0100
++++ qemu-0.7.0/Makefile	2005-04-30 11:01:41.000000000 +0100
+@@ -1,6 +1,6 @@
+ -include config-host.mak
+ 
+-CFLAGS=-Wall -O2 -g -fno-strict-aliasing 
++CFLAGS=$(RPM_OPT_FLAGS) -Wall -fno-strict-aliasing 
+ ifdef CONFIG_DARWIN
+ CFLAGS+= -mdynamic-no-pic
+ endif
+--- qemu-0.7.0/Makefile.target.orig	2005-04-27 21:52:05.000000000 +0100
++++ qemu-0.7.0/Makefile.target	2005-04-30 11:03:59.000000000 +0100
+@@ -14,7 +14,7 @@
+ VPATH+=:$(SRC_PATH)/linux-user
+ DEFINES+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ARCH)
+ endif
+-CFLAGS=-Wall -O2 -g -fno-strict-aliasing
++CFLAGS=$(RPM_OPT_FLAGS) -Wall -fno-strict-aliasing
+ #CFLAGS+=-Werror
+ LDFLAGS=-g
+ LIBS=
+@@ -177,7 +177,7 @@
+ ifeq ($(ARCH),alpha)
+ # -msmall-data is not used because we want two-instruction relocations
+ # for the constant constructions
+-OP_CFLAGS=-Wall -O2 -g
++OP_CFLAGS=$(RPM_OPT_FLAGS) -Wall
+ # Ensure there's only a single GP
+ CFLAGS += -msmall-data
+ LDFLAGS+=-Wl,-T,$(SRC_PATH)/alpha.ld
+@@ -463,7 +463,7 @@
+ 
+ install: all 
+ ifneq ($(PROGS),)
+-	install -m 755 -s $(PROGS) "$(bindir)"
++	install -m 755 $(PROGS) "$(bindir)"
+ endif
+ 
+ ifneq ($(wildcard .depend),)
diff --git a/qemu-0.7.0-ppc-functions-end-in-branch.patch b/qemu-0.7.0-ppc-functions-end-in-branch.patch
new file mode 100644
index 0000000..1fa015b
--- /dev/null
+++ b/qemu-0.7.0-ppc-functions-end-in-branch.patch
@@ -0,0 +1,18 @@
+--- qemu-0.7.0/dyngen.c.orig	2005-04-30 11:59:05.000000000 +0100
++++ qemu-0.7.0/dyngen.c	2005-04-30 12:00:11.000000000 +0100
+@@ -1396,11 +1395,13 @@ void gen_code(const char *name, host_ulo
+ #elif defined(HOST_PPC)
+     {
+         uint8_t *p;
++        uint32_t insn;
+         p = (void *)(p_end - 4);
+         if (p == p_start)
+             error("empty code for %s", name);
+-        if (get32((uint32_t *)p) != 0x4e800020)
+-            error("blr expected at the end of %s", name);
++        insn = get32((uint32_t *)p);
++        if (insn != 0x4e800020 && (insn & 0xfc000002) != 0x48000000)
++            error("blr or b expected at the end of %s", name);
+         copy_size = p - p_start;
+     }
+ #elif defined(HOST_S390)
diff --git a/qemu.spec b/qemu.spec
index b1ca40d..7a92534 100644
--- a/qemu.spec
+++ b/qemu.spec
@@ -1,14 +1,15 @@
 Summary: QEMU is a FAST! processor emulator
 Name: qemu
-Version: 0.6.1
-Release: 3
+Version: 0.7.0
+Release: 1
 
 License: GPL/LGPL
 Group: Development/Tools
 URL: http://fabrice.bellard.free.fr/qemu
 Source0: http://fabrice.bellard.free.fr/qemu/%{name}-%{version}.tar.gz
 Source1: qemu.init
-Patch0: qemu-0.6.1-build.patch
+Patch0: qemu-0.7.0-build.patch
+Patch1: qemu-0.7.0-ppc-functions-end-in-branch.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
 BuildRequires: SDL-devel
 PreReq: /sbin/chkconfig
@@ -24,7 +25,7 @@ to port on new host CPUs. QEMU has two operating modes:
    endianness and 32/64 bit mismatches. Wine (Windows emulation) and DOSEMU
    (DOS emulation) are the main targets for QEMU.
  * Full system emulation. In this mode, QEMU emulates a full system, including
-   a processor and various peripherials. Currently, it is only used to launch
+   a processor and various peripherals. Currently, it is only used to launch
    an x86 Linux kernel on an x86 Linux system. It enables easier testing and
    debugging of system code. It can also be used to provide virtual hosting
    of several virtual PC on a single server.
@@ -34,6 +35,7 @@ As QEMU requires no host kernel patches to run, it is very safe and easy to use.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %build
 ./configure --prefix=%{_prefix} --interp-prefix=%{_prefix}/qemu-%%M
@@ -67,13 +69,17 @@ fi
 %defattr(-,root,root)
 %doc Changelog README README.distrib TODO
 %doc qemu-tech.texi qemu-doc.texi
-%doc linux-2.6-qemu-fast.patch *.html
+%doc *.html
 %{_bindir}/qemu*
 %{_prefix}/share/qemu
 %{_mandir}/man?/*
 %config %{_sysconfdir}/rc.d/init.d/qemu
 
 %changelog
+* Sat Apr 30 2005 David Woodhouse <dwmw2@infradead.org> .0.7.0-1
+- Update to 0.7.0
+- Fix dyngen for PPC functions which end in unconditional branch
+
 * Fri Apr  7 2005 Michael Schwendt <mschwendt[AT]users.sf.net>
 - rebuilt
 
diff --git a/sources b/sources
index 9f6e50b..3de9160 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-f1b5e103321832d2786dd4110f6c8ae4  qemu-0.6.1.tar.gz
+234e9ace03b00259bb57dc5a9c633056  qemu-0.7.0.tar.gz