diff --git a/lib/Analysis/BugReporter.cpp b/lib/Analysis/BugReporter.cpp
index e0b1b65..b64182e 100644
--- a/lib/Analysis/BugReporter.cpp
+++ b/lib/Analysis/BugReporter.cpp
@@ -790,18 +790,22 @@
     PathDiagnosticLocation L = CLocs.back();
     if (L.asLocation().isFileID()) {
       
-      if (const Stmt *S = L.asStmt()) {        
-        // Adjust the location for some expressions that are best referenced
-        // by one of their subexpressions.
-        if (const ConditionalOperator *CO = dyn_cast<ConditionalOperator>(S))
-          S = CO->getCond();
-        else if (const ChooseExpr *CE = dyn_cast<ChooseExpr>(S))
-          S = CE->getCond();
-        
-        // Ignore parentheses.
-        if (const ParenExpr *PE = dyn_cast<ParenExpr>(S))
-          S = PE->IgnoreParens();
-        
+      if (const Stmt *S = L.asStmt()) {
+        while (1) {
+          // Adjust the location for some expressions that are best referenced
+          // by one of their subexpressions.
+          if (const ParenExpr *PE = dyn_cast<ParenExpr>(S))
+            S = PE->IgnoreParens();
+          else if (const ConditionalOperator *CO = dyn_cast<ConditionalOperator>(S))
+            S = CO->getCond();
+          else if (const ChooseExpr *CE = dyn_cast<ChooseExpr>(S))
+            S = CE->getCond();
+          else if (const BinaryOperator *BE = dyn_cast<BinaryOperator>(S))
+            S = BE->getLHS();
+          else
+            break;
+        }
+
         L = PathDiagnosticLocation(S, L.getManager());        
       }      
       
