diff --git a/src/finn/custom_op/fpgadataflow/lookup.py b/src/finn/custom_op/fpgadataflow/lookup.py
index 31344c9f1bd43bfe10489f938174a1137faa30c8..98521a926446b642295b948be6fc420dbb1cd071 100644
--- a/src/finn/custom_op/fpgadataflow/lookup.py
+++ b/src/finn/custom_op/fpgadataflow/lookup.py
@@ -259,8 +259,20 @@ class Lookup(HLSCustomOp):
             ]
         elif mem_mode == "external":
             self.code_gen_dict["$DOCOMPUTE$"] = [
-                """StreamingLookup_ext<EmbeddingSize>(in0, out, mem, size, oob_count);
-                oob_irq = oob_count != 0;"""
+                """
+    static unsigned  oob_count_li;
+    static unsigned  oob_count_int;
+#pragma HLS reset variable=oob_count_li
+#pragma HLS reset variable=oob_count_int
+
+    if(oob_count != oob_count_li) {
+        oob_count_int -= oob_count_li;
+        oob_count_li   = oob_count;
+    }
+    StreamingLookup_ext<EmbeddingSize>(in0, out, mem, size, oob_count_int);
+    oob_count =  oob_count_int;
+    oob_irq   = (oob_count_int != 0);
+            """
             ]
 
     def blackboxfunction(self):