diff --git a/scapy/sendrecv.py b/scapy/sendrecv.py
index d94f88a6c25178c1917773a00696f76811e25c13..516262c87d1b690cf81df421e3510fca9b1d0f79 100644
--- a/scapy/sendrecv.py
+++ b/scapy/sendrecv.py
@@ -608,7 +608,10 @@ interfaces)
             sel = select(sniff_sockets, [], [], remain)
             for s in sel[0]:
                 p = s.recv()
-                if p is not None:
+                if p is None and offline is not None:
+                    stop_event = True
+                    break
+                elif p is not None:
                     if lfilter and not lfilter(p):
                         continue
                     if s in label: