diff --git a/epicardium/modules/usb.c b/epicardium/modules/usb.c
index 1e23c99cfbb2a805cc82ab071e0abbbb2e1b9eb7..a58e7d2701ecbfc946dd60b6e5e016de1034b853 100644
--- a/epicardium/modules/usb.c
+++ b/epicardium/modules/usb.c
@@ -24,6 +24,9 @@
 #include "mx25lba.h"
 #include "msc.h"
 
+#include "mxc_sys.h"
+#include "wdt.h"
+
 /* memory access callbacks for the mass storage (FLASH) device */
 static int mscmem_init();
 static uint32_t mscmem_size(void);
@@ -96,6 +99,9 @@ static uint32_t mscmem_size(void)
 
 static int mscmem_read(uint32_t lba, uint8_t *buffer)
 {
+	/* Reset the watchdog as this interrupt might be
+	 * firing back to back for a few seconds. */
+	WDT_ResetTimer(MXC_WDT0);
 	return mx25_read(lba, buffer);
 }
 
@@ -105,6 +111,9 @@ static int mscmem_write(uint32_t lba, uint8_t *buffer)
 		//bootloader_dirty();
 	}
 	dirty = 2;
+	/* Reset the watchdog as this interrupt might be
+	 * firing back to back for a few seconds. */
+	WDT_ResetTimer(MXC_WDT0);
 	return mx25_write(lba, buffer);
 }