diff --git a/wireshark/0005-rsl-hsl.patch b/wireshark/0005-rsl-hsl.patch
index 409d724..4ffaccd 100644
--- a/wireshark/0005-rsl-hsl.patch
+++ b/wireshark/0005-rsl-hsl.patch
@@ -1,28 +1,28 @@
 Index: wireshark/epan/dissectors/packet-rsl.c
 ===================================================================
---- wireshark.orig/epan/dissectors/packet-rsl.c	2011-01-13 12:51:02.000000000 +0100
-+++ wireshark/epan/dissectors/packet-rsl.c	2011-01-15 18:05:20.000000000 +0100
-@@ -2,7 +2,7 @@
+--- wireshark.orig/epan/dissectors/packet-rsl.c	2011-09-06 13:57:15.000000000 +0200
++++ wireshark/epan/dissectors/packet-rsl.c	2011-09-06 14:11:09.000000000 +0200
+@@ -2,6 +2,7 @@
   * Routines for Radio Signalling Link (RSL) dissection.
   *
-  * Copyright 2007, Anders Broman <anders.broman@ericsson.com>
-- * Copyright 2009, Harald Welte <laforge@gnumonks.org>
+  * Copyright 2007, 2011, Anders Broman <anders.broman@ericsson.com>
 + * Copyright 2009-2011, Harald Welte <laforge@gnumonks.org>
   *
-  * $Id: packet-rsl.c 35224 2010-12-20 05:35:29Z guy $
+  * $Id: packet-rsl.c 38413 2011-08-08 17:59:32Z wmeier $
   *
-@@ -137,6 +137,14 @@
- static int hf_rsl_cstat_lost_pkts		= -1;
- static int hf_rsl_cstat_ia_jitter		= -1;
- static int hf_rsl_cstat_avg_tx_dly		= -1;
+@@ -136,7 +137,14 @@
+ static int hf_rsl_cstat_lost_pkts	= -1;
+ static int hf_rsl_cstat_ia_jitter	= -1;
+ static int hf_rsl_cstat_avg_tx_dly	= -1;
+-
 +/* HSL */
-+static int hf_rsl_hsl_bts_serno			= -1;
-+static int hf_rsl_hsl_bts_ver			= -1;
-+static int hf_rsl_hsl_dsp_ver			= -1;
-+static int hf_rsl_hsl_fpga_ver			= -1;
-+static int hf_rsl_hsl_trau_remote_port		= -1;
-+static int hf_rsl_hsl_trau_remote_ip		= -1;
-+static int hf_rsl_hsl_tx_power			= -1;
++static int hf_rsl_hsl_bts_serno		= -1;
++static int hf_rsl_hsl_bts_ver		= -1;
++static int hf_rsl_hsl_dsp_ver		= -1;
++static int hf_rsl_hsl_fpga_ver		= -1;
++static int hf_rsl_hsl_trau_remote_port	= -1;
++static int hf_rsl_hsl_trau_remote_ip	= -1;
++static int hf_rsl_hsl_tx_power		= -1;
  
  /* Initialize the subtree pointers */
  static int ett_rsl = -1;
@@ -34,19 +34,19 @@
  
  static gboolean is_si2q = FALSE;
  
-@@ -239,9 +248,11 @@
- 	{  0x08,		"TRX Management messages" },
- 	{  0x16,		"Location Services messages" },
- 	{  0x3f,		"ip.access Vendor Specific messages" },
-+	{  0x80,		"HSL Vendor Specific messages" },
- 	{ 0,			NULL }
+@@ -243,9 +252,11 @@
+     {  0x08,        "TRX Management messages" },
+     {  0x16,        "Location Services messages" },
+     {  0x3f,	    "ip.access Vendor Specific messages" },
++    {  0x80,	    "HSL Vendor Specific messages" },
+     { 0,            NULL }
  };
  #define RSL_MSGDISC_IPACCESS	0x3f
 +#define RSL_MSGDISC_HSL		0x40
- 
  /*
   * 9.2 MESSAGE TYPE
-@@ -353,6 +364,22 @@
+  */
+@@ -357,6 +368,22 @@
  #define RSL_IE_IPAC_RTP_MPLEX		0xfd
  #define RSL_IE_IPAC_RTP_MPLEX_ID	0xfe
  
@@ -67,30 +67,30 @@
 +#define RSL_IE_HSL_FPGA_VERSION		0xc7
 +
  static const value_string rsl_msg_type_vals[] = {
- 	  /* 	0 0 0 0 - - - - Radio Link Layer Management messages: */
- 	{  0x01,	"DATA REQuest" },								/* 8.3.1 */
-@@ -434,6 +461,12 @@
- 	{  0x77,	"ip.access DLCX" },
- 	{  0x78,	"ip.access DLCX ACK" },
- 	{  0x79,	"ip.access DLCX NACK" },
-+	/* HSL */
-+	{  0x80,	"HSL IDENTIFY" },
-+	{  0x81,	"HSL CONNECT TRAU" },
-+	{  0x82,	"HSL BSSGP" },
-+	{  0x83,	"HSL GPRS TS ALLOC" },
-+	{  0x8a,	"HSL TX SET POWER" },
- 	{ 0,		NULL }
+       /*    0 0 0 0 - - - - Radio Link Layer Management messages: */
+     {  0x01,    "DATA REQuest" },                               /* 8.3.1 */
+@@ -438,6 +465,12 @@
+     {  0x77,	"ip.access DLCX" },
+     {  0x78,	"ip.access DLCX ACK" },
+     {  0x79,	"ip.access DLCX NACK" },
++    /* HSL */
++    {  0x80,	"HSL IDENTIFY" },
++    {  0x81,	"HSL CONNECT TRAU" },
++    {  0x82,	"HSL BSSGP" },
++    {  0x83,	"HSL GPRS TS ALLOC" },
++    {  0x8a,	"HSL TX SET POWER" },
+     { 0,        NULL }
  };
  
-@@ -573,6 +606,7 @@
- 			Not used
+@@ -578,6 +611,7 @@
+             Not used
  
- 	*/
+     */
 +	/* ip.access */
  	{ 0xe0,		"SRTP Configuration" },
  	{ 0xe1,		"BSC Proxy UDP Port" },
  	{ 0xe2,		"BSC Multiplex Timeout" },
-@@ -591,6 +625,13 @@
+@@ -596,6 +630,13 @@
  	{ 0xfc,		"RTP Payload Type 2" },
  	{ 0xfd,		"RTP Multiplex" },
  	{ 0xfe,		"RTP Multiplex Identifier" },
@@ -101,24 +101,10 @@
 +	{ 0xc5,		"HSL BTS SW Version" },
 +	{ 0xc6,		"HSL DSP SW Version" },
 +	{ 0xc7,		"HSL FPGA SW Version" },
- 	{ 0,			NULL }
+     { 0,            NULL }
  };
  
-@@ -714,6 +755,13 @@
- 		[RSL_IE_IPAC_SPEECH_MODE]	= { TLV_TYPE_TV, 0 },
- 		[RSL_IE_IPAC_CONN_ID]		= { TLV_TYPE_FIXED, 2 },
- 		[RSL_IE_IPAC_RTP_PAYLOAD2]	= { TLV_TYPE_TV, 0 },
-+		/* HSL */
-+		[RSL_IE_HSL_BTS_SERNO]		= { TLV_TYPE_TLV,0 },
-+		[RSL_IE_HSL_TRAU_PARAMS]	= { TLV_TYPE_TLV,0 },
-+		[RSL_IE_HSL_TX_POWER]		= { TLV_TYPE_TV, 0 },
-+		[RSL_IE_HSL_BTS_VERSION]	= { TLV_TYPE_TLV, 0 },
-+		[RSL_IE_HSL_DSP_VERSION]	= { TLV_TYPE_TLV, 0 },
-+		[RSL_IE_HSL_FPGA_VERSION]	= { TLV_TYPE_TLV, 0 },
- 	},
- };
- 
-@@ -3118,9 +3166,10 @@
+@@ -3062,9 +3103,10 @@
  	guint8 msg_type;
  	guint32 local_addr = 0;
  	guint16 local_port = 0;
@@ -130,7 +116,7 @@
  	offset++;
  
  #if 0
-@@ -3259,20 +3308,62 @@
+@@ -3203,20 +3245,62 @@
  			proto_tree_add_item(ie_tree, hf_rsl_cstat_avg_tx_dly, tvb,
  					    offset+24, 4, FALSE);
  			break;
@@ -193,48 +179,48 @@
  		break;
  	}
  	return offset;
-@@ -3284,10 +3375,12 @@
- 	guint8	msg_disc, msg_type;
+@@ -3228,10 +3312,12 @@
+     guint8  msg_disc, msg_type;
  
- 	msg_disc = tvb_get_guint8(tvb, offset++) >> 1;
--	msg_type = tvb_get_guint8(tvb,offset)&0x7f;
-+	msg_type = tvb_get_guint8(tvb,offset)&0xff;
- 	proto_tree_add_item(tree, hf_rsl_msg_type, tvb, offset, 1, FALSE);
+     msg_disc = tvb_get_guint8(tvb, offset++) >> 1;
+-    msg_type = tvb_get_guint8(tvb,offset)&0x7f;
++    msg_type = tvb_get_guint8(tvb,offset);
+     proto_tree_add_item(tree, hf_rsl_msg_type, tvb, offset, 1, ENC_BIG_ENDIAN);
  
--	if (msg_disc == RSL_MSGDISC_IPACCESS) {
-+	switch (msg_disc) {
-+	case RSL_MSGDISC_HSL:
-+	case RSL_MSGDISC_IPACCESS:
- 		offset = dissct_rsl_ipaccess_msg(tvb, pinfo, tree, offset);
- 		return offset;
- 	}
-@@ -3924,7 +4017,7 @@
- 	col_set_str(pinfo->cinfo, COL_PROTOCOL, "RSL");
- 	col_clear(pinfo->cinfo, COL_INFO);
+-    if (msg_disc == RSL_MSGDISC_IPACCESS) {
++    switch (msg_disc) {
++    case RSL_MSGDISC_HSL:
++    case RSL_MSGDISC_IPACCESS:
+         offset = dissct_rsl_ipaccess_msg(tvb, pinfo, tree, offset);
+         return offset;
+     }
+@@ -3868,7 +3954,7 @@
+     col_set_str(pinfo->cinfo, COL_PROTOCOL, "RSL");
+     col_clear(pinfo->cinfo, COL_INFO);
  
--	msg_type = tvb_get_guint8(tvb,offset+1)&0x7f;
-+	msg_type = tvb_get_guint8(tvb,offset+1)&0xff;
+-    msg_type = tvb_get_guint8(tvb,offset+1)&0x7f;
++    msg_type = tvb_get_guint8(tvb,offset+1);
  
- 	if (check_col(pinfo->cinfo, COL_INFO)){
- 		col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",val_to_str(msg_type, rsl_msg_type_vals,"unknown %u"));
-@@ -3955,6 +4048,7 @@
+     col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",val_to_str(msg_type, rsl_msg_type_vals,"unknown %u"));
  
- 	gsm_a_ccch_handle = find_dissector("gsm_a_ccch");
- 	gsm_a_dtap_handle = find_dissector("gsm_a_dtap");
-+	bssgp_handle = find_dissector("bssgp");
+@@ -3905,6 +3991,7 @@
+ 
+     gsm_a_ccch_handle = find_dissector("gsm_a_ccch");
+     gsm_a_dtap_handle = find_dissector("gsm_a_dtap");
++    bssgp_handle = find_dissector("bssgp");
  }
  
  /* Register the protocol with Wireshark */
-@@ -3975,7 +4069,7 @@
- 		},
- 		{ &hf_rsl_msg_type,
- 			{ "Message type",           "rsl.msg_type",
--			FT_UINT8, BASE_HEX_DEC, VALS(rsl_msg_type_vals), 0x7f,
-+			FT_UINT8, BASE_HEX_DEC, VALS(rsl_msg_type_vals), 0xff,
- 			NULL, HFILL }
- 		},
- 		{ &hf_rsl_ie_id,
-@@ -4392,6 +4486,36 @@
+@@ -3925,7 +4012,7 @@
+         },
+         { &hf_rsl_msg_type,
+             { "Message type",           "rsl.msg_type",
+-            FT_UINT8, BASE_HEX_DEC, VALS(rsl_msg_type_vals), 0x7f,
++            FT_UINT8, BASE_HEX_DEC, VALS(rsl_msg_type_vals), 0xff,
+             NULL, HFILL }
+         },
+         { &hf_rsl_ie_id,
+@@ -4342,6 +4429,35 @@
  			{ "Average Tx Delay", "rsl.ipacc.cstat.avg_tx_delay",
  			  FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }
  		},
@@ -267,7 +253,20 @@
 +			{ "HSL TRAU Remote IP Address", "rsl.hsl.trau.remote_ip",
 +			  FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL },
 +		},
-+
- 	};
- 	static gint *ett[] = {
- 		&ett_rsl,
+     };
+     static gint *ett[] = {
+         &ett_rsl,
+@@ -4481,6 +4597,13 @@
+ 	RSL_ATT_TLVDEF(RSL_IE_IPAC_SPEECH_MODE,	TLV_TYPE_TV,		0);
+ 	RSL_ATT_TLVDEF(RSL_IE_IPAC_CONN_ID,	TLV_TYPE_FIXED,		2);
+ 	RSL_ATT_TLVDEF(RSL_IE_IPAC_RTP_PAYLOAD2,TLV_TYPE_TV,		0);
++	/* HSL */
++	RSL_ATT_TLVDEF(RSL_IE_HSL_BTS_SERNO,	TLV_TYPE_TLV,		0);
++	RSL_ATT_TLVDEF(RSL_IE_HSL_TRAU_PARAMS,	TLV_TYPE_TLV,		0);
++	RSL_ATT_TLVDEF(RSL_IE_HSL_TX_POWER,	TLV_TYPE_TV,		0);
++	RSL_ATT_TLVDEF(RSL_IE_HSL_BTS_VERSION,	TLV_TYPE_TLV,		0);
++	RSL_ATT_TLVDEF(RSL_IE_HSL_DSP_VERSION,	TLV_TYPE_TLV,		0);
++	RSL_ATT_TLVDEF(RSL_IE_HSL_FPGA_VERSION,	TLV_TYPE_TLV,		0);
+ 
+     /* Register the protocol name and description */
+     proto_rsl = proto_register_protocol("Radio Signalling Link (RSL)",
