diff --git a/asn1/utils/asn1tostruct.py b/asn1/utils/asn1tostruct.py
index d1b5292..3519407 100755
--- a/asn1/utils/asn1tostruct.py
+++ b/asn1/utils/asn1tostruct.py
@@ -260,6 +260,18 @@
     f.write("int %s_decode_%s(\n" % (fileprefix, firstlower.lower()))
     f.write("    %sIEs_t *%sIEs,\n" % (asn1cStruct, firstlower))
     f.write("    %s_t *%s);\n\n" % (asn1cStruct, lowerFirstCamelWord(asn1cStruct)))
+
+for key in iesDefs:
+    keyupperunderscore = re.sub('-', '_', key.upper())
+    keylowerunderscore = re.sub('-', '_', key.lower())
+    structName = re.sub('ies', '', key)
+
+    if len(iesDefs[key]["ies"]) == 0:
+       continue
+
+    f.write("int %s_free_%s(\n" % (fileprefix, re.sub('-', '_', structName.lower())))
+    if len(iesDefs[key]["ies"]) != 0:
+        f.write("    %s_t *%s);\n\n" % (prefix + re.sub('-', '_', key), lowerFirstCamelWord(re.sub('-', '_', key))))
 f.write("#endif /* %s_IES_DEFS_H_ */\n\n" % (fileprefix.upper()))
 
 #Generate Decode functions
diff --git a/include/osmocom/ranap/ranap_ies_defs.h b/include/osmocom/ranap/ranap_ies_defs.h
index ea50eb4..eb4813f 100644
--- a/include/osmocom/ranap/ranap_ies_defs.h
+++ b/include/osmocom/ranap/ranap_ies_defs.h
@@ -1,7 +1,7 @@
 /*******************************************************************************
  * This file had been created by asn1tostruct.py script v0.5osmo1
  * Please do not modify this file but regenerate it via script.
- * Created on: 2016-01-11 12:45:00.144035 by neels
+ * Created on: 2016-02-19 16:51:41.625903 by daniel
  * from ['../asn1//ranap/RANAP-PDU-Contents.asn']
  ******************************************************************************/
 #include <osmocom/ranap/ranap_common.h>
@@ -2648,5 +2648,320 @@
     RANAP_RAB_SetupOrModifiedList_t *ranaP_RAB_SetupOrModifiedList,
     RANAP_RAB_SetupOrModifiedItemIEs_t *raB_SetupOrModifiedItemIEs);
 
+int ranap_free_rab_releaseditemies(
+    RANAP_RAB_ReleasedItemIEs_t *raB_ReleasedItemIEs);
+
+int ranap_free_iu_releaserequesties(
+    RANAP_Iu_ReleaseRequestIEs_t *iu_ReleaseRequestIEs);
+
+int ranap_free_uespecificinformationindicationies(
+    RANAP_UESpecificInformationIndicationIEs_t *ueSpecificInformationIndicationIEs);
+
+int ranap_free_enhancedrelocationcompletefailureies(
+    RANAP_EnhancedRelocationCompleteFailureIEs_t *enhancedRelocationCompleteFailureIEs);
+
+int ranap_free_mbmscnde_registrationresponseies(
+    RANAP_MBMSCNDe_RegistrationResponseIEs_t *mbmscnDe_RegistrationResponseIEs);
+
+int ranap_free_securitymoderejecties(
+    RANAP_SecurityModeRejectIEs_t *securityModeRejectIEs);
+
+int ranap_free_ranap_relocationinformationies(
+    RANAP_RANAP_RelocationInformationIEs_t *ranaP_RelocationInformationIEs);
+
+int ranap_free_resetacknowledgeies(
+    RANAP_ResetAcknowledgeIEs_t *resetAcknowledgeIEs);
+
+int ranap_free_relocationcancelacknowledgeies(
+    RANAP_RelocationCancelAcknowledgeIEs_t *relocationCancelAcknowledgeIEs);
+
+int ranap_free_srvcc_cskeysresponseies(
+    RANAP_SRVCC_CSKeysResponseIEs_t *srvcC_CSKeysResponseIEs);
+
+int ranap_free_mbmscnde_registrationrequesties(
+    RANAP_MBMSCNDe_RegistrationRequestIEs_t *mbmscnDe_RegistrationRequestIEs);
+
+int ranap_free_pagingies(
+    RANAP_PagingIEs_t *pagingIEs);
+
+int ranap_free_geran_iumode_rab_failed_rabassgntresponse_itemies(
+    RANAP_GERAN_Iumode_RAB_Failed_RABAssgntResponse_ItemIEs_t *geraN_Iumode_RAB_Failed_RABAssgntResponse_ItemIEs);
+
+int ranap_free_resetresourceitemies(
+    RANAP_ResetResourceItemIEs_t *resetResourceItemIEs);
+
+int ranap_free_locationreportingcontrolies(
+    RANAP_LocationReportingControlIEs_t *locationReportingControlIEs);
+
+int ranap_free_enhancedrelocationcompleterequesties(
+    RANAP_EnhancedRelocationCompleteRequestIEs_t *enhancedRelocationCompleteRequestIEs);
+
+int ranap_free_rab_faileditemies(
+    RANAP_RAB_FailedItemIEs_t *raB_FailedItemIEs);
+
+int ranap_free_mbmsuelinkingresponseies(
+    RANAP_MBMSUELinkingResponseIEs_t *mbmsueLinkingResponseIEs);
+
+int ranap_free_rab_queueditemies(
+    RANAP_RAB_QueuedItemIEs_t *raB_QueuedItemIEs);
+
+int ranap_free_cn_invoketraceies(
+    RANAP_CN_InvokeTraceIEs_t *cN_InvokeTraceIEs);
+
+int ranap_free_iu_releasecommandies(
+    RANAP_Iu_ReleaseCommandIEs_t *iu_ReleaseCommandIEs);
+
+int ranap_free_relocationrequestacknowledgeies(
+    RANAP_RelocationRequestAcknowledgeIEs_t *relocationRequestAcknowledgeIEs);
+
+int ranap_free_relocationfailureies(
+    RANAP_RelocationFailureIEs_t *relocationFailureIEs);
+
+int ranap_free_rabs_failed_to_reportitemies(
+    RANAP_RABs_failed_to_reportItemIEs_t *raBs_failed_to_reportItemIEs);
+
+int ranap_free_relocationpreparationfailureies(
+    RANAP_RelocationPreparationFailureIEs_t *relocationPreparationFailureIEs);
+
+int ranap_free_rab_tobereleaseditem_enhancedreloccompleteres_ies(
+    RANAP_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes_IEs_t *raB_ToBeReleasedItem_EnhancedRelocCompleteRes_IEs);
+
+int ranap_free_rabs_contextfailedtotransferitemies(
+    RANAP_RABs_ContextFailedtoTransferItemIEs_t *raBs_ContextFailedtoTransferItemIEs);
+
+int ranap_free_relocationrequiredies(
+    RANAP_RelocationRequiredIEs_t *relocationRequiredIEs);
+
+int ranap_free_mbmssessionstopies(
+    RANAP_MBMSSessionStopIEs_t *mbmsSessionStopIEs);
+
+int ranap_free_mbmssessionupdatefailureies(
+    RANAP_MBMSSessionUpdateFailureIEs_t *mbmsSessionUpdateFailureIEs);
+
+int ranap_free_reseties(
+    RANAP_ResetIEs_t *resetIEs);
+
+int ranap_free_locationrelateddatafailureies(
+    RANAP_LocationRelatedDataFailureIEs_t *locationRelatedDataFailureIEs);
+
+int ranap_free_resetresourceacknowledgeies(
+    RANAP_ResetResourceAcknowledgeIEs_t *resetResourceAcknowledgeIEs);
+
+int ranap_free_mbmsregistrationrequesties(
+    RANAP_MBMSRegistrationRequestIEs_t *mbmsRegistrationRequestIEs);
+
+int ranap_free_uplinkinformationexchangerequesties(
+    RANAP_UplinkInformationExchangeRequestIEs_t *uplinkInformationExchangeRequestIEs);
+
+int ranap_free_mbmssessionstopresponseies(
+    RANAP_MBMSSessionStopResponseIEs_t *mbmsSessionStopResponseIEs);
+
+int ranap_free_rab_contextitemies_ranap_relocinf(
+    RANAP_RAB_ContextItemIEs_RANAP_RelocInf_t *raB_ContextItemIEs_RANAP_RelocInf);
+
+int ranap_free_locationrelateddatarequesties(
+    RANAP_LocationRelatedDataRequestIEs_t *locationRelatedDataRequestIEs);
+
+int ranap_free_rab_dataforwardingitem_srns_ctxreq_ies(
+    RANAP_RAB_DataForwardingItem_SRNS_CtxReq_IEs_t *raB_DataForwardingItem_SRNS_CtxReq_IEs);
+
+int ranap_free_rab_releaseitemies(
+    RANAP_RAB_ReleaseItemIEs_t *raB_ReleaseItemIEs);
+
+int ranap_free_rab_datavolumereportrequestitemies(
+    RANAP_RAB_DataVolumeReportRequestItemIEs_t *raB_DataVolumeReportRequestItemIEs);
+
+int ranap_free_informationtransferconfirmationies(
+    RANAP_InformationTransferConfirmationIEs_t *informationTransferConfirmationIEs);
+
+int ranap_free_initialue_messageies(
+    RANAP_InitialUE_MessageIEs_t *initialUE_MessageIEs);
+
+int ranap_free_srns_contextresponseies(
+    RANAP_SRNS_ContextResponseIEs_t *srnS_ContextResponseIEs);
+
+int ranap_free_resetresourceackitemies(
+    RANAP_ResetResourceAckItemIEs_t *resetResourceAckItemIEs);
+
+int ranap_free_srns_dataforwardcommandies(
+    RANAP_SRNS_DataForwardCommandIEs_t *srnS_DataForwardCommandIEs);
+
+int ranap_free_relocationrequesties(
+    RANAP_RelocationRequestIEs_t *relocationRequestIEs);
+
+int ranap_free_srns_contextrequesties(
+    RANAP_SRNS_ContextRequestIEs_t *srnS_ContextRequestIEs);
+
+int ranap_free_mbmssessionstartresponseies(
+    RANAP_MBMSSessionStartResponseIEs_t *mbmsSessionStartResponseIEs);
+
+int ranap_free_directtransferies(
+    RANAP_DirectTransferIEs_t *directTransferIEs);
+
+int ranap_free_resetresourceies(
+    RANAP_ResetResourceIEs_t *resetResourceIEs);
+
+int ranap_free_ranap_enhancedrelocationinformationresponseies(
+    RANAP_RANAP_EnhancedRelocationInformationResponseIEs_t *ranaP_EnhancedRelocationInformationResponseIEs);
+
+int ranap_free_rab_setupitem_enhancedreloccompleteres_ies(
+    RANAP_RAB_SetupItem_EnhancedRelocCompleteRes_IEs_t *raB_SetupItem_EnhancedRelocCompleteRes_IEs);
+
+int ranap_free_ranap_enhancedrelocationinformationrequesties(
+    RANAP_RANAP_EnhancedRelocationInformationRequestIEs_t *ranaP_EnhancedRelocationInformationRequestIEs);
+
+int ranap_free_securitymodecommandies(
+    RANAP_SecurityModeCommandIEs_t *securityModeCommandIEs);
+
+int ranap_free_relocationcancelies(
+    RANAP_RelocationCancelIEs_t *relocationCancelIEs);
+
+int ranap_free_rab_setupitem_relocreqack_ies(
+    RANAP_RAB_SetupItem_RelocReqAck_IEs_t *raB_SetupItem_RelocReqAck_IEs);
+
+int ranap_free_mbmsregistrationfailureies(
+    RANAP_MBMSRegistrationFailureIEs_t *mbmsRegistrationFailureIEs);
+
+int ranap_free_mbmsrabestablishmentindicationies(
+    RANAP_MBMSRABEstablishmentIndicationIEs_t *mbmsrabEstablishmentIndicationIEs);
+
+int ranap_free_mbmssessionstartfailureies(
+    RANAP_MBMSSessionStartFailureIEs_t *mbmsSessionStartFailureIEs);
+
+int ranap_free_iu_releasecompleteies(
+    RANAP_Iu_ReleaseCompleteIEs_t *iu_ReleaseCompleteIEs);
+
+int ranap_free_cn_deactivatetraceies(
+    RANAP_CN_DeactivateTraceIEs_t *cN_DeactivateTraceIEs);
+
+int ranap_free_datavolumereportrequesties(
+    RANAP_DataVolumeReportRequestIEs_t *dataVolumeReportRequestIEs);
+
+int ranap_free_rab_relocationreleaseitemies(
+    RANAP_RAB_RelocationReleaseItemIEs_t *raB_RelocationReleaseItemIEs);
+
+int ranap_free_rab_modifyrequesties(
+    RANAP_RAB_ModifyRequestIEs_t *raB_ModifyRequestIEs);
+
+int ranap_free_securitymodecompleteies(
+    RANAP_SecurityModeCompleteIEs_t *securityModeCompleteIEs);
+
+int ranap_free_mbmsrabreleaseies(
+    RANAP_MBMSRABReleaseIEs_t *mbmsrabReleaseIEs);
+
+int ranap_free_overloadies(
+    RANAP_OverloadIEs_t *overloadIEs);
+
+int ranap_free_rab_setupitem_relocreq_ies(
+    RANAP_RAB_SetupItem_RelocReq_IEs_t *raB_SetupItem_RelocReq_IEs);
+
+int ranap_free_rab_modifyitemies(
+    RANAP_RAB_ModifyItemIEs_t *raB_ModifyItemIEs);
+
+int ranap_free_mbmsregistrationresponseies(
+    RANAP_MBMSRegistrationResponseIEs_t *mbmsRegistrationResponseIEs);
+
+int ranap_free_forwardsrns_contexties(
+    RANAP_ForwardSRNS_ContextIEs_t *forwardSRNS_ContextIEs);
+
+int ranap_free_uplinkinformationexchangefailureies(
+    RANAP_UplinkInformationExchangeFailureIEs_t *uplinkInformationExchangeFailureIEs);
+
+int ranap_free_rab_setupitem_enhrelocinfores_ies(
+    RANAP_RAB_SetupItem_EnhRelocInfoRes_IEs_t *raB_SetupItem_EnhRelocInfoRes_IEs);
+
+int ranap_free_datavolumereporties(
+    RANAP_DataVolumeReportIEs_t *dataVolumeReportIEs);
+
+int ranap_free_informationtransferindicationies(
+    RANAP_InformationTransferIndicationIEs_t *informationTransferIndicationIEs);
+
+int ranap_free_rab_faileditem_enhrelocinfores_ies(
+    RANAP_RAB_FailedItem_EnhRelocInfoRes_IEs_t *raB_FailedItem_EnhRelocInfoRes_IEs);
+
+int ranap_free_informationtransferfailureies(
+    RANAP_InformationTransferFailureIEs_t *informationTransferFailureIEs);
+
+int ranap_free_commonid_ies(
+    RANAP_CommonID_IEs_t *commonID_IEs);
+
+int ranap_free_mbmsuelinkingrequesties(
+    RANAP_MBMSUELinkingRequestIEs_t *mbmsueLinkingRequestIEs);
+
+int ranap_free_errorindicationies(
+    RANAP_ErrorIndicationIEs_t *errorIndicationIEs);
+
+int ranap_free_redirectionindication_ies(
+    RANAP_RedirectionIndication_IEs_t *redirectionIndication_IEs);
+
+int ranap_free_rab_dataforwardingitemies(
+    RANAP_RAB_DataForwardingItemIEs_t *raB_DataForwardingItemIEs);
+
+int ranap_free_rab_setupitem_enhrelocinforeq_ies(
+    RANAP_RAB_SetupItem_EnhRelocInfoReq_IEs_t *raB_SetupItem_EnhRelocInfoReq_IEs);
+
+int ranap_free_mbmsrabreleasefailureies(
+    RANAP_MBMSRABReleaseFailureIEs_t *mbmsrabReleaseFailureIEs);
+
+int ranap_free_rab_datavolumereportitemies(
+    RANAP_RAB_DataVolumeReportItemIEs_t *raB_DataVolumeReportItemIEs);
+
+int ranap_free_directinformationtransferies(
+    RANAP_DirectInformationTransferIEs_t *directInformationTransferIEs);
+
+int ranap_free_relocationcommandies(
+    RANAP_RelocationCommandIEs_t *relocationCommandIEs);
+
+int ranap_free_uplinkinformationexchangeresponseies(
+    RANAP_UplinkInformationExchangeResponseIEs_t *uplinkInformationExchangeResponseIEs);
+
+int ranap_free_mbmsrabreleaserequesties(
+    RANAP_MBMSRABReleaseRequestIEs_t *mbmsrabReleaseRequestIEs);
+
+int ranap_free_rab_assignmentrequesties(
+    RANAP_RAB_AssignmentRequestIEs_t *raB_AssignmentRequestIEs);
+
+int ranap_free_rab_releaseditem_iurelcomp_ies(
+    RANAP_RAB_ReleasedItem_IuRelComp_IEs_t *raB_ReleasedItem_IuRelComp_IEs);
+
+int ranap_free_enhancedrelocationcompleteresponseies(
+    RANAP_EnhancedRelocationCompleteResponseIEs_t *enhancedRelocationCompleteResponseIEs);
+
+int ranap_free_locationreporties(
+    RANAP_LocationReportIEs_t *locationReportIEs);
+
+int ranap_free_rab_setupitem_enhancedreloccompletereq_ies(
+    RANAP_RAB_SetupItem_EnhancedRelocCompleteReq_IEs_t *raB_SetupItem_EnhancedRelocCompleteReq_IEs);
+
+int ranap_free_rab_assignmentresponseies(
+    RANAP_RAB_AssignmentResponseIEs_t *raB_AssignmentResponseIEs);
+
+int ranap_free_rab_contextitemies(
+    RANAP_RAB_ContextItemIEs_t *raB_ContextItemIEs);
+
+int ranap_free_mbmssessionupdateresponseies(
+    RANAP_MBMSSessionUpdateResponseIEs_t *mbmsSessionUpdateResponseIEs);
+
+int ranap_free_ueradiocapabilitymatchresponseies(
+    RANAP_UeRadioCapabilityMatchResponseIEs_t *ueRadioCapabilityMatchResponseIEs);
+
+int ranap_free_rab_releaserequesties(
+    RANAP_RAB_ReleaseRequestIEs_t *raB_ReleaseRequestIEs);
+
+int ranap_free_enhancedrelocationcompleteconfirmies(
+    RANAP_EnhancedRelocationCompleteConfirmIEs_t *enhancedRelocationCompleteConfirmIEs);
+
+int ranap_free_mbmssessionupdateies(
+    RANAP_MBMSSessionUpdateIEs_t *mbmsSessionUpdateIEs);
+
+int ranap_free_mbmssessionstarties(
+    RANAP_MBMSSessionStartIEs_t *mbmsSessionStartIEs);
+
+int ranap_free_locationrelateddataresponseies(
+    RANAP_LocationRelatedDataResponseIEs_t *locationRelatedDataResponseIEs);
+
+int ranap_free_rab_setupormodifieditemies(
+    RANAP_RAB_SetupOrModifiedItemIEs_t *raB_SetupOrModifiedItemIEs);
+
 #endif /* RANAP_IES_DEFS_H_ */
 
