C++ operator parser bug

Consider the following code:

	class Y {
	  public: int operator[]( int );
	int Y::operator[]( int a ) {}
	class X {
	  public: Y operator[]( int );
	Y X::operator[]( int a ) {}
	void main() {
	  X x; 

The parser gets the array subscripting expression in main() wrong. It
_should_ be parsed as


but is instead parsed simply as


i.e., as if x were an array. If one does some explicit grouping here:


one gets a partially correct result, namely


but this is still not right, as x is not an array.

I am working on the call graph analyzer and getting operators right w/o
special casing this would be nice, although I know how I'd do it. Any chance
of getting a fix (or pointers to a fix) soon?