diff --git a/wireshark/rsl-ipaccess.patch b/wireshark/rsl-ipaccess.patch
index 1cb4c5c..b893faa 100644
--- a/wireshark/rsl-ipaccess.patch
+++ b/wireshark/rsl-ipaccess.patch
@@ -1,7 +1,7 @@
 Index: wireshark/epan/dissectors/packet-rsl.c
 ===================================================================
 --- wireshark.orig/epan/dissectors/packet-rsl.c	2009-02-28 15:39:56.000000000 +0100
-+++ wireshark/epan/dissectors/packet-rsl.c	2009-06-26 14:58:39.000000000 +0200
++++ wireshark/epan/dissectors/packet-rsl.c	2009-06-26 15:51:00.000000000 +0200
 @@ -2,6 +2,7 @@
   * Routines for Radio Signalling Link (RSL) dissection.
   *
@@ -76,11 +76,11 @@
 +#define RSL_MSG_TYPE_IPAC_CONNECT_ACK	0x74
 +#define RSL_MSG_TYPE_IPAC_CONNECT_NACK	0x75
 +#define RSL_MSG_TYPE_IPAC_DISC_IND	0x76
++
 +#define RSL_IE_IPAC_REMOTE_IP		0xf0
 +#define RSL_IE_IPAC_REMOTE_PORT		0xf1
 +#define RSL_IE_IPAC_LOCAL_PORT		0xf3
 +#define RSL_IE_IPAC_LOCAL_IP		0xf5
-+
  
  static const value_string rsl_msg_type_vals[] = {
  	  /* 	0 0 0 0 - - - - Radio Link Layer Management messages: */
@@ -214,7 +214,7 @@
  
  	/* Received Message */
  	offset = dissct_rsl_msg(tvb, pinfo, ie_tree, offset);
-@@ -2907,13 +3045,385 @@
+@@ -2907,13 +3045,392 @@
  	return ie_offset + length;
  }
  
@@ -555,17 +555,21 @@
 +		case RSL_IE_CH_NO:
 +			break;
 +		case RSL_IE_IPAC_REMOTE_IP:
-+			proto_tree_add_item(ie_tree, hf_rsl_remote_ip, tvb, offset, len, FALSE);
++			proto_tree_add_item(ie_tree, hf_rsl_remote_ip, tvb,
++					    offset, len, FALSE);
 +			break;
 +		case RSL_IE_IPAC_REMOTE_PORT:
-+			proto_tree_add_item(ie_tree, hf_rsl_remote_port, tvb, offset, len, FALSE);
++			proto_tree_add_item(ie_tree, hf_rsl_remote_port, tvb,
++					    offset, len, FALSE);
 +			break;
 +		case RSL_IE_IPAC_LOCAL_IP:
-+			proto_tree_add_item(ie_tree, hf_rsl_local_ip, tvb, offset, len, FALSE);
++			proto_tree_add_item(ie_tree, hf_rsl_local_ip, tvb,
++					    offset, len, FALSE);
 +			local_addr = tvb_get_ipv4(tvb, offset);
 +			break;
 +		case RSL_IE_IPAC_LOCAL_PORT:
-+			proto_tree_add_item(ie_tree, hf_rsl_local_port, tvb, offset, len, FALSE);
++			proto_tree_add_item(ie_tree, hf_rsl_local_port, tvb,
++					    offset, len, FALSE);
 +			local_port = tvb_get_ntohs(tvb, offset);
 +			break;
 +		}
@@ -574,11 +578,14 @@
 +
 +	switch (msg_type) {
 +	case RSL_MSG_TYPE_IPAC_BIND_ACK:
++		/* Notify the RTP and RTCP dissectors about a new RTP stream */
 +		src_addr.type = AT_IPv4;
 +		src_addr.len = 4;
 +		src_addr.data = (guint8 *)&local_addr;
-+		rtp_add_address(pinfo, &src_addr, local_port, 0, "GSM A-bis/IP", pinfo->fd->num, 0);
-+		rtcp_add_address(pinfo, &src_addr, local_port+1, 0, "GSM A-bis/IP", pinfo->fd->num);
++		rtp_add_address(pinfo, &src_addr, local_port, 0,
++				"GSM A-bis/IP", pinfo->fd->num, 0);
++		rtcp_add_address(pinfo, &src_addr, local_port+1, 0,
++				 "GSM A-bis/IP", pinfo->fd->num);
 +		break;
 +	}
 +	return offset;
@@ -601,7 +608,7 @@
  	offset++;
  
  	switch (msg_type){
-@@ -3517,7 +4027,6 @@
+@@ -3517,7 +4034,6 @@
  		/* 9.1 Message discriminator */
  		proto_tree_add_item(rsl_tree, hf_rsl_msg_dsc, tvb, offset, 1, FALSE);
  		proto_tree_add_item(rsl_tree, hf_rsl_T_bit, tvb, offset, 1, FALSE);
@@ -609,7 +616,7 @@
  
  		offset = dissct_rsl_msg(tvb, pinfo, rsl_tree, offset);
  
-@@ -3883,6 +4392,46 @@
+@@ -3883,6 +4399,46 @@
  			FT_UINT8, BASE_DEC, VALS(rsl_emlpp_prio_vals), 0x03,
  			"eMLPP Priority", HFILL }
  		},
@@ -656,7 +663,7 @@
  	};
  	static gint *ett[] = {
  		&ett_rsl,
-@@ -3941,6 +4490,14 @@
+@@ -3941,6 +4497,14 @@
  		&ett_ie_meas_res_no,
  		&ett_ie_message_id,
  		&ett_ie_sys_info_type,
