diff --git a/src/shared/cplusplus/AST.cpp b/src/shared/cplusplus/AST.cpp
index 0425bf5a9bdc6af4f61476d28f65eca6f8162a79..12a520a4fc924748d2eb51ec5d511341d27323ce 100644
--- a/src/shared/cplusplus/AST.cpp
+++ b/src/shared/cplusplus/AST.cpp
@@ -1632,8 +1632,18 @@ unsigned SizeofExpressionAST::firstToken() const
 
 unsigned SizeofExpressionAST::lastToken() const
 {
-    if (expression)
+    if (rparen_token)
+        return rparen_token + 1;
+
+    else if (expression)
         return expression->lastToken();
+
+    else if (lparen_token)
+        return lparen_token + 1;
+
+    else if (dot_dot_dot_token)
+        return dot_dot_dot_token + 1;
+
     return sizeof_token + 1;
 }
 
diff --git a/src/shared/cplusplus/AST.h b/src/shared/cplusplus/AST.h
index 3c995613b0355212a032d4d6e76895ec0dc192c1..2baf4bb3b45ee76850b4946eb7b283ee5ad644bd 100644
--- a/src/shared/cplusplus/AST.h
+++ b/src/shared/cplusplus/AST.h
@@ -2887,6 +2887,7 @@ class CPLUSPLUS_EXPORT SizeofExpressionAST: public ExpressionAST
 {
 public:
     unsigned sizeof_token;
+    unsigned dot_dot_dot_token;
     unsigned lparen_token;
     ExpressionAST *expression;
     unsigned rparen_token;
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index ec9280f4342013544083de7caaf12c27dae8daf8..a1c6f74f39d921755186578069202a8a38bd3333 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -4268,6 +4268,11 @@ bool Parser::parseUnaryExpression(ExpressionAST *&node)
         SizeofExpressionAST *ast = new (_pool) SizeofExpressionAST;
         ast->sizeof_token = consumeToken();
 
+        // sizeof...(Args)
+        if (_cxx0xEnabled && LA() == T_DOT_DOT_DOT && (LA(2) == T_IDENTIFIER || (LA(2) == T_LPAREN && LA(3) == T_IDENTIFIER
+                                                                                 && LA(4) == T_RPAREN)))
+            ast->dot_dot_dot_token = consumeToken();
+
         if (LA() == T_LPAREN) {
             unsigned lparen_token = consumeToken();
             if (parseTypeId(ast->expression) && LA() == T_RPAREN) {