Index: src/code.l
===================================================================
--- src/code.l	(revision 757)
+++ src/code.l	(working copy)
@@ -790,6 +790,23 @@
   return 0;
 }
 
+static void updateCallContextForPointer(void)
+{
+  ClassDef *cd = g_theCallContext.getClass();
+  if (cd)
+  {
+    MemberDef *md = cd->getMemberByName("operator->");
+    if (md)
+    {
+      ClassDef *ncd(stripClassName(md->typeString()));
+      if (ncd)
+      {
+        g_theCallContext.setClass(ncd);
+      }
+    }
+  }
+}
+
 static void addDocCrossReference(MemberDef *src,MemberDef *dst)
 {
   static bool referencedByRelation = Config_getBool("REFERENCED_BY_RELATION");
@@ -2493,7 +2510,13 @@
   					  g_code->codify(yytext);
 					  endFontClass();
   					}
-<Body>"."|"->"				{ 
+<Body>"."				{ 
+  					  g_code->codify(yytext);
+					  g_memCallContext = YY_START;
+  					  BEGIN( MemberCall ); 
+					}
+<Body>"->"				{ 
+					  updateCallContextForPointer();
   					  g_code->codify(yytext);
 					  g_memCallContext = YY_START;
   					  BEGIN( MemberCall ); 
