Although this is an old problem I havn't found it's report here, so...
For some versions, coloring did not work right if ViewWhitespace is enabled in VC6 (at least in a german version. But I'm sure it happens on a english one either). VC2005 seems to work.
On my machine p1 (inside the function) is "not colored" if I enable ViewWhitespace.
Moreover, check this:
struct x { int y; struct x * l; };
int test() { struct x z; }
If ViewWhitespace is enabled, x (inside the function and inside the struct) is not colored. z is in both cases colored as type which is also wrong... If ViewWhitespace is disabled, x in the type declaration looks different that the x inside the function ...