diff --git a/include/sdp_lib.h b/include/sdp_lib.h
index 715f98c..0fa7cb7 100644
--- a/include/sdp_lib.h
+++ b/include/sdp_lib.h
@@ -454,6 +454,11 @@
 int sdp_get_access_protos(const sdp_record_t *rec, sdp_list_t **protos);
 
 /*
+ * Get the additional access protocols from the service record
+ */
+int sdp_get_add_access_protos(const sdp_record_t *rec, sdp_list_t **pap);
+
+/*
  * Extract the list of browse groups to which the service belongs.
  * When set, seqp contains elements of GroupID (uint16_t) 
  */
diff --git a/src/sdp.c b/src/sdp.c
index 6740e9d..75c8edc 100644
--- a/src/sdp.c
+++ b/src/sdp.c
@@ -1310,6 +1310,30 @@
 	return 0;
 }
 
+int sdp_get_add_access_protos(const sdp_record_t *rec, sdp_list_t **pap)
+{
+	sdp_data_t *pdlist, *curr;
+	sdp_list_t *ap = 0;
+
+	pdlist = sdp_data_get(rec, SDP_ATTR_ADD_PROTO_DESC_LIST);
+	if (pdlist == NULL) {
+		errno = ENODATA;
+		return -1;
+	}
+	SDPDBG("AP type : 0%x\n", pdlist->dtd);
+
+	pdlist = pdlist->val.dataseq;
+
+	for (; pdlist; pdlist = pdlist->next) {
+		sdp_list_t *pds = 0;
+		for (curr = pdlist->val.dataseq; curr; curr = curr->next)
+			pds = sdp_list_append(pds, curr->val.dataseq);
+		ap = sdp_list_append(ap, pds);
+	}
+	*pap = ap;
+	return 0;
+}
+
 int sdp_get_uuidseq_attr(const sdp_record_t *rec, uint16_t attr, sdp_list_t **seqp)
 {
 	sdp_data_t *sdpdata = sdp_data_get(rec, attr);
