First I'd like to suggest to increase the number of characters in the topictitle, because I'm always having difficulties expressing the problem
The problem is, whenever you use a cv-qualified typedef-id as a template argument or cast destination (that is, whenever it is expressed between angle brackets), VA X decides to color ALL uses of that type in that sourcefile as if it where a variable. This only applies to typedef identifiers, not to the actual user defined types like class names. And also only if you put the cv-qualifiers in front of the type.
struct MyType { };
MyType * ptr = static_cast<MyType*>(0);
const MyType * ptr = static_cast<const MyType*>(0);
typedef MyType MyAlias;
MyAlias * ptr = static_cast<MyAlias*>(0);
const MyAlias * ptr = static_cast<MyAlias const*>(0);
const MyAlias * ptr = static_cast<const MyAlias*>(0); // culprit
The last line makes all occurences of 'MyAlias' be colored like variables. If you remove that last line, it is colored like a type as it should. When using a type directly instead of through a typedef, like in the MyType example, all is fine.
Naturally it also applies when you use volatile or const volatile.