diff --git a/lib/StaticAnalyzer/Core/BugReporter.cpp b/lib/StaticAnalyzer/Core/BugReporter.cpp
index ed91988..2bf701b 100644
--- a/lib/StaticAnalyzer/Core/BugReporter.cpp
+++ b/lib/StaticAnalyzer/Core/BugReporter.cpp
@@ -138,20 +138,29 @@
   return 0;
 }
 
-static void RemoveRedundantMsgs(PathPieces &path) {
+/// An optimization pass over PathPieces that removes redundant diagnostics
+/// generated by both ConditionBRVisitor and TrackConstraintBRVisitor.  Both
+/// BugReporterVisitors use different methods to generate diagnostics, with
+/// one capable of emitting diagnostics in some cases but not in others.  This
+/// can lead to redundant diagnostic pieces at the same point in a path.
+static void removeRedundantMsgs(PathPieces &path) {
   unsigned N = path.size();
   if (N < 2)
     return;
+  // NOTE: this loop intentionally is not using an iterator.  Instead, we
+  // are streaming the path and modifying it in place.  This is done by
+  // grabbing the front, processing it, and if we decide to keep it append
+  // it to the end of the path.  The entire path is processed in this way.
   for (unsigned i = 0; i < N; ++i) {
     IntrusiveRefCntPtr<PathDiagnosticPiece> piece(path.front());
     path.pop_front();
     
     switch (piece->getKind()) {
       case clang::ento::PathDiagnosticPiece::Call:
-        RemoveRedundantMsgs(cast<PathDiagnosticCallPiece>(piece)->path);
+        removeRedundantMsgs(cast<PathDiagnosticCallPiece>(piece)->path);
         break;
       case clang::ento::PathDiagnosticPiece::Macro:
-        RemoveRedundantMsgs(cast<PathDiagnosticMacroPiece>(piece)->subPieces);
+        removeRedundantMsgs(cast<PathDiagnosticMacroPiece>(piece)->subPieces);
         break;
       case clang::ento::PathDiagnosticPiece::ControlFlow:
         break;
@@ -2080,7 +2089,7 @@
   // Finally, prune the diagnostic path of uninteresting stuff.
   if (!PD.path.empty()) {
     // Remove messages that are basically the same.
-    RemoveRedundantMsgs(PD.getMutablePieces());
+    removeRedundantMsgs(PD.getMutablePieces());
 
     if (R->shouldPrunePath()) {
       bool hasSomethingInteresting = RemoveUneededCalls(PD.getMutablePieces(),
