diff --git a/shared/cplusplus/AST.cpp b/shared/cplusplus/AST.cpp
index 5ddfe4774c3d7565c8bd5e88e1bb0b9e7c290973..dcf32573616057c04731eec0b224f2b9b447fc99 100644
--- a/shared/cplusplus/AST.cpp
+++ b/shared/cplusplus/AST.cpp
@@ -1790,8 +1790,11 @@ unsigned NestedExpressionAST::firstToken() const
 
 unsigned NestedExpressionAST::lastToken() const
 {
-    assert(0 && "review me");
-    return rparen_token + 1;
+    if (rparen_token)
+        return rparen_token + 1;
+    else if (expression)
+        return expression->lastToken();
+    return lparen_token + 1;
 }
 
 void NestedNameSpecifierAST::accept0(ASTVisitor *visitor)
@@ -1809,8 +1812,9 @@ unsigned NestedNameSpecifierAST::firstToken() const
 
 unsigned NestedNameSpecifierAST::lastToken() const
 {
-    assert(0 && "review me");
-    return scope_token + 1;
+    if (scope_token)
+        return scope_token + 1;
+    return class_or_namespace_name->lastToken();
 }
 
 void NewDeclaratorAST::accept0(ASTVisitor *visitor)