diff --git a/shared/cplusplus/Parser.cpp b/shared/cplusplus/Parser.cpp
index 02c2fedd055937d8fd3b02bfe251e67189bc097d..99faf4e36a0380de8997866c610886a8ec6ecc9d 100644
--- a/shared/cplusplus/Parser.cpp
+++ b/shared/cplusplus/Parser.cpp
@@ -3328,6 +3328,21 @@ bool Parser::parseObjCPropertyDynamic(DeclarationAST *&node)
 
 bool Parser::parseObjCIdentifierList(IdentifierListAST *&node)
 {
+    if (LA() == T_IDENTIFIER) {
+        IdentifierListAST **it = &node;
+        IdentifierListAST *id = new (_pool) IdentifierListAST;
+        id->identifier_token = consumeToken();
+        *it = id;
+        while (LA() == T_COMMA) {
+            consumeToken();
+            if (LA() == T_IDENTIFIER) {
+                it = &(*it)->next;
+                IdentifierListAST *id = new (_pool) IdentifierListAST;
+                id->identifier_token = consumeToken();
+                *it = id;
+            }
+        }
+    }
     return false;
 }