diff --git a/wireshark/gsm_ipa-hsl.patch b/wireshark/gsm_ipa-hsl.patch
index 969dcdc..26f25e4 100644
--- a/wireshark/gsm_ipa-hsl.patch
+++ b/wireshark/gsm_ipa-hsl.patch
@@ -2,7 +2,16 @@
 ===================================================================
 --- wireshark.orig/epan/dissectors/packet-gsm_ipa.c
 +++ wireshark/epan/dissectors/packet-gsm_ipa.c
-@@ -39,6 +39,7 @@
+@@ -40,6 +40,8 @@
+ static dissector_handle_t ipa_handle;
+ static range_t *global_ipa_tcp_ports = NULL;
+ static range_t *global_ipa_udp_ports = NULL;
++static gboolean global_ipa_in_root;
++static gboolean global_ipa_in_info;
+ 
+ /* Initialize the protocol and registered fields */
+ static int proto_ipa = -1;
+@@ -47,6 +49,7 @@
  
  static int hf_ipa_data_len = -1;
  static int hf_ipa_protocol = -1;
@@ -10,7 +19,7 @@
  
  static int hf_ipaccess_msgtype = -1;
  static int hf_ipaccess_attr_tag = -1;
-@@ -70,6 +71,7 @@
+@@ -73,6 +76,7 @@
  #define AIP_SCCP	0xfd
  #define ABISIP_IPACCESS	0xfe
  #define ABISIP_OML	0xff
@@ -18,7 +27,7 @@
  
  static const value_string ipa_protocol_vals[] = {
  	{ 0x00,		"RSL" },
-@@ -77,6 +79,7 @@
+@@ -80,6 +84,7 @@
  	{ 0xfd,		"SCCP" },
  	{ 0xfe,		"IPA" },
  	{ 0xff,		"OML" },
@@ -26,7 +35,7 @@
  	{ 0, 		NULL }
  };
  
-@@ -184,7 +187,7 @@
+@@ -187,7 +192,7 @@
  
  	while ((remaining = tvb_reported_length_remaining(tvb, offset)) > 0) {
  		proto_item *ti;
@@ -35,21 +44,26 @@
  		guint16 len, msg_type;
  		tvbuff_t *next_tvb;
  
-@@ -238,6 +241,13 @@
+@@ -241,6 +246,18 @@
  			/* hand this off to the standard MGCP dissector */
  			call_dissector(sub_handles[SUB_MGCP], next_tvb, pinfo, tree);
  			break;
 +		case HSL_DEBUG:
 +			if (tree) {
-+				proto_tree_add_item(ipa_tree, hf_ipa_hsl_debug, next_tvb, 0, len, FALSE);
-+				proto_tree_add_item(tree, hf_ipa_hsl_debug, next_tvb, 0, len, FALSE);
++				proto_tree_add_item(ipa_tree, hf_ipa_hsl_debug,
++						    next_tvb, 0, len, FALSE);
++				if (global_ipa_in_root == TRUE)
++					proto_tree_add_item(tree, hf_ipa_hsl_debug,
++							    next_tvb, 0, len, FALSE);
 +			}
-+			col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", tvb_get_stringz(next_tvb, 0, NULL));
++			if (global_ipa_in_info == TRUE)
++				col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
++						tvb_get_stringz(next_tvb, 0, NULL));
 +			break;
  		default:
  			if (msg_type < ABISIP_RSL_MAX) {
  				/* hand this off to the standard A-bis RSL dissector */
-@@ -262,6 +272,11 @@
+@@ -269,6 +286,11 @@
  		  FT_UINT8, BASE_HEX, VALS(ipa_protocol_vals), 0x0,
  		  "The IPA Sub-Protocol", HFILL}
  		 },
@@ -61,3 +75,17 @@
  	};
  	static hf_register_info hf_ipa[] = {
  		{&hf_ipaccess_msgtype,
+@@ -321,6 +343,13 @@
+ 					"Set the port(s) for ip.access IPA"
+ 					" (default: " IPA_UDP_PORTS ")",
+ 					&global_ipa_udp_ports, MAX_UDP_PORT);
++
++	prefs_register_bool_preference(ipa_module, "hsl_debug_in_root_tree",
++					"HSL Debug messages in root protocol tree",
++					NULL, &global_ipa_in_root);
++	prefs_register_bool_preference(ipa_module, "hsl_debug_in_info",
++					"HSL Debug messages in INFO column",
++					NULL, &global_ipa_in_info);
+ }
+ 
+ static void ipa_tcp_delete_callback(guint32 port)
