diff --git a/libvirt-0.4.4-boot-cdrom.patch b/libvirt-0.4.4-boot-cdrom.patch
new file mode 100644
index 0000000..4b35d2b
--- /dev/null
+++ b/libvirt-0.4.4-boot-cdrom.patch
@@ -0,0 +1,99 @@
+diff -rupN libvirt-0.4.4.orig/src/qemu_conf.c libvirt-0.4.4.new/src/qemu_conf.c
+--- libvirt-0.4.4.orig/src/qemu_conf.c	2008-06-19 14:15:02.000000000 +0100
++++ libvirt-0.4.4.new/src/qemu_conf.c	2008-07-08 12:24:07.000000000 +0100
+@@ -2616,7 +2616,8 @@ int qemudBuildCommandLine(virConnectPtr 
+                      disk->src, qemudBusIdToName(disk->bus, 1),
+                      media ? media : "",
+                      idx,
+-                     bootable ? ",boot=on" : "");
++                     bootable && disk->device == QEMUD_DISK_DISK
++                     ? ",boot=on" : "");
+ 
+             ADD_ARG_LIT("-drive");
+             ADD_ARG_LIT(opt);
+diff -rupN libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.args libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.args
+--- libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.args	1970-01-01 01:00:00.000000000 +0100
++++ libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.args	2008-07-08 12:25:59.000000000 +0100
+@@ -0,0 +1 @@
++/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot d -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0 -drive file=/dev/HostVG/QEMUGuest2,if=ide,media=cdrom,index=2 -net none -serial none -parallel none -usb
+\ No newline at end of file
+diff -rupN libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml
+--- libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml	1970-01-01 01:00:00.000000000 +0100
++++ libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml	2008-07-08 12:20:42.000000000 +0100
+@@ -0,0 +1,26 @@
++<domain type='qemu'>
++  <name>QEMUGuest1</name>
++  <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
++  <memory>219200</memory>
++  <currentMemory>219200</currentMemory>
++  <vcpu>1</vcpu>
++  <os>
++    <type arch='i686' machine='pc'>hvm</type>
++    <boot dev='cdrom'/>
++  </os>
++  <clock offset='utc'/>
++  <on_poweroff>destroy</on_poweroff>
++  <on_reboot>restart</on_reboot>
++  <on_crash>destroy</on_crash>
++  <devices>
++    <emulator>/usr/bin/qemu</emulator>
++    <disk type='block' device='disk'>
++      <source dev='/dev/HostVG/QEMUGuest1'/>
++      <target dev='hda' bus='ide'/>
++    </disk>
++    <disk type='block' device='cdrom'>
++      <source dev='/dev/HostVG/QEMUGuest2'/>
++      <target dev='hdc' bus='ide'/>
++    </disk>
++  </devices>
++</domain>
+diff -rupN libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.args libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.args
+--- libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.args	1970-01-01 01:00:00.000000000 +0100
++++ libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.args	2008-07-08 12:13:15.000000000 +0100
+@@ -0,0 +1 @@
++/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0,boot=on -drive file=/dev/HostVG/QEMUGuest2,if=ide,media=cdrom,index=2 -net none -serial none -parallel none -usb
+\ No newline at end of file
+diff -rupN libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml
+--- libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml	1970-01-01 01:00:00.000000000 +0100
++++ libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml	2008-07-08 12:12:41.000000000 +0100
+@@ -0,0 +1,26 @@
++<domain type='qemu'>
++  <name>QEMUGuest1</name>
++  <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
++  <memory>219200</memory>
++  <currentMemory>219200</currentMemory>
++  <vcpu>1</vcpu>
++  <os>
++    <type arch='i686' machine='pc'>hvm</type>
++    <boot dev='hd'/>
++  </os>
++  <clock offset='utc'/>
++  <on_poweroff>destroy</on_poweroff>
++  <on_reboot>restart</on_reboot>
++  <on_crash>destroy</on_crash>
++  <devices>
++    <emulator>/usr/bin/qemu</emulator>
++    <disk type='block' device='disk'>
++      <source dev='/dev/HostVG/QEMUGuest1'/>
++      <target dev='hda' bus='ide'/>
++    </disk>
++    <disk type='block' device='cdrom'>
++      <source dev='/dev/HostVG/QEMUGuest2'/>
++      <target dev='hdc' bus='ide'/>
++    </disk>
++  </devices>
++</domain>
+diff -rupN libvirt-0.4.4.orig/tests/qemuxml2argvtest.c libvirt-0.4.4.new/tests/qemuxml2argvtest.c
+--- libvirt-0.4.4.orig/tests/qemuxml2argvtest.c	2008-06-02 10:16:46.000000000 +0100
++++ libvirt-0.4.4.new/tests/qemuxml2argvtest.c	2008-07-08 12:21:53.000000000 +0100
+@@ -158,6 +158,10 @@ mymain(int argc, char **argv)
+             QEMUD_CMD_FLAG_DRIVE_BOOT);
+     DO_TEST("disk-xenvbd", QEMUD_CMD_FLAG_DRIVE |
+             QEMUD_CMD_FLAG_DRIVE_BOOT);
++    DO_TEST("disk-drive-boot-disk", QEMUD_CMD_FLAG_DRIVE |
++            QEMUD_CMD_FLAG_DRIVE_BOOT);
++    DO_TEST("disk-drive-boot-cdrom", QEMUD_CMD_FLAG_DRIVE |
++            QEMUD_CMD_FLAG_DRIVE_BOOT);
+     DO_TEST("graphics-vnc", 0);
+     DO_TEST("graphics-sdl", 0);
+     DO_TEST("input-usbmouse", 0);
diff --git a/libvirt.spec b/libvirt.spec
index dc8383a..59b7510 100644
--- a/libvirt.spec
+++ b/libvirt.spec
@@ -28,10 +28,11 @@
 Summary: Library providing a simple API virtualization
 Name: libvirt
 Version: 0.4.4
-Release: 1%{?dist}%{?extra_release}
+Release: 2%{?dist}%{?extra_release}
 License: LGPL
 Group: Development/Libraries
 Source: libvirt-%{version}.tar.gz
+Patch1: %{name}-%{version}-boot-cdrom.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
 URL: http://libvirt.org/
 BuildRequires: python python-devel
@@ -141,6 +142,7 @@ of recent versions of Linux (and other OSes).
 
 %prep
 %setup -q
+%patch1 -p1
 
 %build
 %if ! %{with_xen}
@@ -279,6 +281,9 @@ fi
 %doc docs/examples/python
 
 %changelog
+* Tue Jul  8 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.4-2.fc10
+- Fix booting of CDROM images with KVM (rhbz #452355)
+
 * Wed Jun 25 2008 Daniel Veillard <veillard@redhat.com> - 0.4.4-1.fc10
 - upstream release 0.4.4
 - fix a few bugs in previous release