Index: generic/include/fifo.h
===================================================================
--- generic/include/fifo.h	(revision df09142fc921be2b6eee959f06e636a75aa46994)
+++ generic/include/fifo.h	(revision d4efc19a62ad2481c255b0b5c088c22486cfecbe)
@@ -67,5 +67,5 @@
  */
 #define fifo_pop(name) \
-	name.fifo[name.head = (name.head + 1) % name.items]
+	name.fifo[name.head = (name.head + 1) < name.items ? (name.head + 1) : 0]
 
 /** Push value to tail of FIFO.
@@ -76,5 +76,5 @@
  */
 #define fifo_push(name, value) \
-	name.fifo[name.tail = (name.tail + 1) % name.items] = (value) 
+	name.fifo[name.tail = (name.tail + 1) < name.items ? (name.tail + 1) : 0] = (value) 
 
 #endif
