diff --git a/include/asterisk/app.h b/include/asterisk/app.h
index 91d06aace8d6c35cf04aeaf9a19cc6f2bda8029f..6323287fccc7db32f896aaa4c966d3b439d238c2 100644
--- a/include/asterisk/app.h
+++ b/include/asterisk/app.h
@@ -1235,10 +1235,8 @@ int ast_app_group_list_unlock(void);
 #define AST_DEFINE_APP_ARGS_TYPE(type, arglist) \
 	struct type { \
 		unsigned int argc; \
-		union { \
-			char *argv[sizeof(struct {arglist}) / sizeof(char *)]; \
-			struct {arglist}; \
-		}; \
+		char *argv[0]; \
+		arglist; \
 	}
 
 /*!