Index: epan/dissectors/packet-mp2t.c
===================================================================
--- epan/dissectors/packet-mp2t.c	(revision 20899)
+++ epan/dissectors/packet-mp2t.c	(working copy)
@@ -136,6 +136,7 @@
 static int hf_mp2t_af_e_m_3 = -1;
 
 static int hf_mp2t_payload = -1;
+static int hf_mp2t_malformed_payload = -1;
 
 static const value_string mp2t_sync_byte_vals[] = {
 	{ 0x47, "Correct" },
@@ -186,6 +187,7 @@
 	guint32 header;
 	guint afc;
 	gint start_offset = offset;
+	gint payload_len;
 
 	proto_item *ti = NULL;
 	proto_item *hi = NULL;
@@ -390,11 +392,13 @@
 		}
 	}
 
-	if (afc == 0 || afc == 1) {
-		gint payload_len;
-
-		payload_len = MP2T_PACKET_SIZE - (offset - start_offset);
-		if (payload_len > 0) {
+	payload_len = MP2T_PACKET_SIZE - (offset - start_offset);
+	if (payload_len > 0) {
+		if (afc == 2) {	/* AF only */
+			/* Packet is malformed */
+			proto_tree_add_item( mp2t_tree, hf_mp2t_malformed_payload, tvb, offset, payload_len, FALSE);
+			offset += payload_len;
+		} else {
 			proto_tree_add_item( mp2t_tree, hf_mp2t_payload, tvb, offset, payload_len, FALSE);
 			offset += payload_len;
 		}
@@ -592,6 +596,10 @@
 			"Payload", "mp2t.payload",
 			FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL
 		} } ,
+		{ &hf_mp2t_malformed_payload, {
+			"Malformed Payload", "mp2t.malformed_payload",
+			FT_BYTES, BASE_DEC, NULL, 0x0, "", HFILL
+		} } ,
 	};
 
 	static gint *ett[] =
