Index: ioemu/hw/piix4acpi.c
===================================================================
--- ioemu.orig/hw/piix4acpi.c	2007-05-09 13:54:28.000000000 +0100
+++ ioemu/hw/piix4acpi.c	2007-05-09 13:54:41.000000000 +0100
@@ -57,6 +57,26 @@
     uint16_t pm1_control; /* pm1a_ECNT_BLK */
 } PCIAcpiState;
 
+static void piix4acpi_save(QEMUFile *f, void *opaque)
+{
+    PCIAcpiState *s = opaque;
+    pci_device_save(&s->dev, f);
+    qemu_put_be16s(f, &s->pm1_control);
+}
+
+static int piix4acpi_load(QEMUFile *f, void *opaque, int version_id)
+{
+    PCIAcpiState *s = opaque;
+    int ret;
+    if (version_id > 1) 
+        return -EINVAL;
+    ret = pci_device_load(&s->dev, f);
+    if (ret < 0)
+	return ret;
+    qemu_get_be16s(f, &s->pm1_control);
+    return 0;
+}
+
 static void acpiPm1Control_writeb(void *opaque, uint32_t addr, uint32_t val)
 {
     PCIAcpiState *s = opaque;
@@ -193,4 +213,6 @@
     d->pm1_control = SCI_EN;
 
     acpi_map((PCIDevice *)d, 0, 0x1f40, 0x10, PCI_ADDRESS_SPACE_IO);
+
+    register_savevm("piix4acpi", 0, 1, piix4acpi_save, piix4acpi_load, d);
 }
