diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index 6c5598d7b4b3508ee5d3d73235a162e814e62685..73cea0009babbd93a68945ae4eb3512323a73280 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -1436,7 +1436,7 @@ bool Parser::parseAbstractCoreDeclarator(DeclaratorAST *&node, SpecifierListAST
 
     unsigned after_ptr_operators = cursor();
 
-    if (LA() == T_LPAREN) {
+    if (LA() == T_LPAREN && LA(2) != T_RPAREN) {
         unsigned lparen_token = consumeToken();
         DeclaratorAST *declarator = 0;
         if (parseAbstractDeclarator(declarator, decl_specifier_list) && LA() == T_RPAREN) {