diff --git a/scapy/arch/pcapdnet.py b/scapy/arch/pcapdnet.py
index c3333b0f28e1106504b6add31d78f9a5a4fdb5ef..c608b70b4f4d6b4db86ec26b86f13b1aff14d6ea 100755
--- a/scapy/arch/pcapdnet.py
+++ b/scapy/arch/pcapdnet.py
@@ -203,7 +203,7 @@ if conf.use_winpcapy:
           else:
               cls = conf.default_l2
               warning("Unable to guess datalink type (interface=%s linktype=%i). Using %s" % (self.iface, ll, cls.name))
-  
+
           pkt = None
           while pkt is None:
               pkt = self.ins.next()
@@ -438,23 +438,20 @@ if conf.use_pcap:
                     cls = conf.default_l2
                     warning("Unable to guess datalink type (interface=%s linktype=%i). Using %s" % (self.iface, ll, cls.name))
         
-                pkt = None
-                while pkt is None:
-                    pkt = self.ins.next()
-                    if pkt is not None:
-                        ts,pkt = pkt
-                    if scapy.arch.WINDOWS and pkt is None:
+                pkt = self.ins.next()
+                if scapy.arch.WINDOWS and pkt is None:
                         raise PcapTimeoutElapsed
-                
-                try:
-                    pkt = cls(pkt)
-                except KeyboardInterrupt:
-                    raise
-                except:
-                    if conf.debug_dissector:
+                if pkt is not None:
+                    ts,pkt = pkt
+                    try:
+                        pkt = cls(pkt)
+                    except KeyboardInterrupt:
                         raise
-                    pkt = conf.raw_layer(pkt)
-                pkt.time = ts
+                    except:
+                        if conf.debug_dissector:
+                            raise
+                        pkt = conf.raw_layer(pkt)
+                    pkt.time = ts
                 return pkt
         
             def send(self, x):
diff --git a/scapy/sendrecv.py b/scapy/sendrecv.py
index f24591f23471130e38e25a4f253164441ffeac8b..ee7aaca9d9ec2ac1c7e97f78886f44066d296820 100644
--- a/scapy/sendrecv.py
+++ b/scapy/sendrecv.py
@@ -585,7 +585,7 @@ stop_filter: python function applied to each packet to determine
             if s in sel[0]:
                 p = s.recv(MTU)
                 if p is None:
-                    break
+                    continue
                 if lfilter and not lfilter(p):
                     continue
                 if store: