diff --git a/src/interrupt/irq.rs b/src/interrupt/irq.rs
index 2a27f81a0cf776fe7f2e91555b08af9f818f46c8..d1fd7ab6bcdbdc19da079fd02d46d3f8a6de60d1 100644
--- a/src/interrupt/irq.rs
+++ b/src/interrupt/irq.rs
@@ -51,7 +51,9 @@ interrupt!(pit, {
 
     pic::MASTER.ack();
 
-    if PIT_TICKS.fetch_add(1, Ordering::SeqCst) % 10 == 0 {
+    if PIT_TICKS.fetch_add(1, Ordering::SeqCst) >= 10 {
+        PIT_TICKS.store(0, Ordering::SeqCst);
+        assert_eq!(PIT_TICKS.load(Ordering::SeqCst), 0);
         context::switch();
     }