Index: tcpreplay.c
===================================================================
--- tcpreplay.c	(revision 1587)
+++ tcpreplay.c	(working copy)
@@ -85,7 +85,7 @@
 CIDR *xX_cidr = NULL;
 LIST *xX_list = NULL;
 char l2data[L2DATALEN] = "";
-int l2len = LIBNET_ETH_H;
+int l2len = 4; /* length of HDLC header */
 int maxpacket = 0;
 
 
Index: do_packets.c
===================================================================
--- do_packets.c	(revision 1587)
+++ do_packets.c	(working copy)
@@ -221,6 +221,11 @@
                                    linktype, l2enabled, l2data, l2len)) == 0)
             continue;
 
+        if (l2len != newl2len) {
+            pkthdr.caplen = pkthdr.caplen - l2len + newl2len;
+            pkthdr.len  = pkthdr.len - l2len + newl2len;
+        }
+
         l2len = newl2len;
 
         /* look for include or exclude LIST match */
