Index: /trunk/include/iprt/asn1-generator-pass.h
===================================================================
--- /trunk/include/iprt/asn1-generator-pass.h	(revision 54705)
+++ /trunk/include/iprt/asn1-generator-pass.h	(revision 54706)
@@ -1087,7 +1087,10 @@
 # define RTASN1TMPL_MEMBER_DYN_COMMON(a_UnionNm, a_PtrName, a_Type, a_Api, a_Allocation, a_enmMembNm, a_enmValue, a_IfStmt) \
         case a_enmValue: \
-            RT_CONCAT(a_Api,_Delete)(pThis->a_UnionNm.a_PtrName); \
-            RTAsn1MemFree(&pThis->Allocation, pThis->a_UnionNm.a_PtrName); \
-            pThis->a_UnionNm.a_PtrName = NULL; \
+            if (pThis->a_UnionNm.a_PtrName) \
+            { \
+                RT_CONCAT(a_Api,_Delete)(pThis->a_UnionNm.a_PtrName); \
+                RTAsn1MemFree(&pThis->Allocation, pThis->a_UnionNm.a_PtrName); \
+                pThis->a_UnionNm.a_PtrName = NULL; \
+            } \
             break
 # define RTASN1TMPL_MEMBER_DYN_END(a_enmType, a_enmMembNm, a_Allocation) \
@@ -1104,13 +1107,19 @@
 # define RTASN1TMPL_PCHOICE_ITAG_EX(a_uTag, a_enmChoice, a_PtrName, a_Name, a_Type, a_Api, a_fClue, a_Constraints) \
         case a_enmChoice: \
-            RT_CONCAT(a_Api,_Delete)(pThis->a_PtrName); \
-            RTAsn1MemFree(&pThis->Allocation, pThis->a_PtrName); \
-            pThis->a_PtrName = NULL; \
+            if (pThis->a_PtrName) \
+            { \
+                RT_CONCAT(a_Api,_Delete)(pThis->a_PtrName); \
+                RTAsn1MemFree(&pThis->Allocation, pThis->a_PtrName); \
+                pThis->a_PtrName = NULL; \
+            } \
             break
 # define RTASN1TMPL_PCHOICE_XTAG_EX(a_uTag, a_enmChoice, a_PtrTnNm, a_CtxTagN, a_Name, a_Type, a_Api, a_Constraints) \
         case a_enmChoice: \
-            RT_CONCAT(a_Api,_Delete)(&pThis->a_PtrTnNm->a_Name); \
-            RTAsn1MemFree(&pThis->Allocation, pThis->a_PtrTnNm); \
-            pThis->a_PtrTnNm = NULL; \
+            if (pThis->a_PtrTnNm) \
+            { \
+                RT_CONCAT(a_Api,_Delete)(&pThis->a_PtrTnNm->a_Name); \
+                RTAsn1MemFree(&pThis->Allocation, pThis->a_PtrTnNm); \
+                pThis->a_PtrTnNm = NULL; \
+            } \
             break
 # define RTASN1TMPL_END_PCHOICE() \
