struct ip_options       opt;            /* Compiled IP options          */
        unsigned char           flags;
 
-#define IPSKB_MASQUERADED      1
-#define IPSKB_TRANSLATED       2
-#define IPSKB_FORWARDED                4
-#define IPSKB_XFRM_TUNNEL_SIZE 8
-#define IPSKB_FRAG_COMPLETE    16
+#define IPSKB_FORWARDED                1
+#define IPSKB_XFRM_TUNNEL_SIZE 2
+#define IPSKB_FRAG_COMPLETE    4
 };
 
 struct ipcm_cookie
 
        skb->h.raw = skb->nh.raw;
        skb->nh.raw = skb_push(skb, gre_hlen);
        memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
+       IPCB(skb)->flags &= ~IPSKB_XFRM_TUNNEL_SIZE;
        dst_release(skb->dst);
        skb->dst = &rt->u.dst;
 
 
        skb->h.raw = skb->nh.raw;
        skb->nh.raw = skb_push(skb, sizeof(struct iphdr));
        memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
+       IPCB(skb)->flags &= ~IPSKB_XFRM_TUNNEL_SIZE;
        dst_release(skb->dst);
        skb->dst = &rt->u.dst;
 
 
                skb->mac.raw = skb->nh.raw;
                skb->nh.raw = skb->data;
                memset(&(IPCB(skb)->opt), 0, sizeof(struct ip_options));
+               IPCB(skb)->flags = 0;
                skb->protocol = htons(ETH_P_IPV6);
                skb->pkt_type = PACKET_HOST;
                tunnel->stat.rx_packets++;
        skb->h.raw = skb->nh.raw;
        skb->nh.raw = skb_push(skb, sizeof(struct iphdr));
        memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
+       IPCB(skb)->flags = 0;
        dst_release(skb->dst);
        skb->dst = &rt->u.dst;