Index: /branches/rel_apv_10_7/usr/src/sys/click/app/fastslb/fastslb_tcp.c
===================================================================
--- /branches/rel_apv_10_7/usr/src/sys/click/app/fastslb/fastslb_tcp.c	(revision 39103)
+++ /branches/rel_apv_10_7/usr/src/sys/click/app/fastslb/fastslb_tcp.c	(working copy)
@@ -496,10 +496,11 @@
 	if (syn_cache_enable){
 		return fasttcp_syn_cache_in(tuples, m, vs_p, real_ifp);
 	}else{
-		/*When syn_cache_enable is off,
-		  *reverse mode,transparent mode, only SYN packet can build fastpcb.
+		/* When syn_cache_enable is off,
+		 * reverse mode,transparent mode, only SYN packet can build fastpcb.
+		 * Allow SYN posibly with ECN and CWR but not anything else
 		 */
-		if(tuples->th->th_flags == TH_SYN) {
+		if((tuples->th->th_flags & (TH_SYN | TH_FIN | TH_RST | TH_PUSH | TH_ACK | TH_URG )) == TH_SYN) {
                         /* check options for mss, and change it for loopack packets */
                         fasttcp_update_mss(tuples, m, TO_SYN);
 			return fasttcp_passive_open(tuples, m, vs_p, real_ifp, NULL);
