diff --git a/shared/cplusplus/AST.cpp b/shared/cplusplus/AST.cpp
index 90cd140ef8f2953c2d6bab4bd0e8052b4d387789..f894a16167a5b2a88cf74b9858db8a598e0e00d3 100644
--- a/shared/cplusplus/AST.cpp
+++ b/shared/cplusplus/AST.cpp
@@ -1631,7 +1631,6 @@ unsigned LinkageSpecificationAST::firstToken() const
 
 unsigned LinkageSpecificationAST::lastToken() const
 {
-    assert(0 && "review me");
     if (declaration)
         return declaration->lastToken();
     else if (extern_type)
@@ -1653,8 +1652,13 @@ unsigned MemInitializerAST::firstToken() const
 
 unsigned MemInitializerAST::lastToken() const
 {
-    assert(0 && "review me");
-    return rparen_token + 1;
+    if (rparen_token)
+        return rparen_token + 1;
+    else if (expression)
+        return expression->lastToken();
+    else if (lparen_token)
+        return lparen_token + 1;
+    return name->lastToken();
 }
 
 void MemberAccessAST::accept0(ASTVisitor *visitor)