diff --git a/hw/ptimer.c b/hw/ptimer.c
index 7dd6d3110a91a23f7b9e224296ceea1a52d1ac6e..356fad7b6f67d0c981d03d11b5423b8dbca0858f 100644
--- a/hw/ptimer.c
+++ b/hw/ptimer.c
@@ -100,6 +100,9 @@ void ptimer_set_count(ptimer_state *s, uint64_t count)
 
 void ptimer_run(ptimer_state *s, int oneshot)
 {
+    if (s->enabled) {
+        return;
+    }
     if (s->period == 0) {
         fprintf(stderr, "Timer with period zero, disabling\n");
         return;