diff --git a/hw/ds1338.c b/hw/ds1338.c
index 1fb152e..f3c6bc5 100644
--- a/hw/ds1338.c
+++ b/hw/ds1338.c
@@ -160,7 +160,12 @@ static int ds1338_send(I2CSlave *i2c, uint8_t data)
          }
          s->offset = qemu_timedate_diff(&now);
      } else if (s->ptr == 7) {
-        /* Control register. Currently ignored.  */
+        /* Control register. */
+
+        /* Attempting to write the OSF flag to logic 1 leaves the
+           value unchanged. */
+        data = (data & 0xDF) | (data & s->nvram[s->ptr] & 0x20);
+
          s->nvram[s->ptr] = data;
      } else {
          s->nvram[s->ptr] = data;
