diff --git a/src/plugins/cppeditor/cppquickfix.cpp b/src/plugins/cppeditor/cppquickfix.cpp
index 8190b4dc8aa885f10016eafc26cc00767d3bac81..097ed29e1241aca97e687a387b6bb939364d875a 100644
--- a/src/plugins/cppeditor/cppquickfix.cpp
+++ b/src/plugins/cppeditor/cppquickfix.cpp
@@ -691,30 +691,20 @@ int CPPQuickFixCollector::startCompletion(TextEditor::ITextEditable *editable)
         candidates.append(takeDeclarationOp);
         candidates.append(splitSimpleDeclarationOp);
 
-        QMultiMap<int, QuickFixOperationPtr> matchedOps;
+        QMap<int, QList<QuickFixOperationPtr> > matchedOps;
 
         foreach (QuickFixOperationPtr op, candidates) {
             int priority = op->match(path, _editor->textCursor());
             if (priority != -1)
-                matchedOps.insert(priority, op);
+                matchedOps[priority].append(op);
         }
 
-        QMapIterator<int, QuickFixOperationPtr> it(matchedOps);
+        QMapIterator<int, QList<QuickFixOperationPtr> > it(matchedOps);
         it.toBack();
         if (it.hasPrevious()) {
             it.previous();
 
-            int priority = it.key();
-            _quickFixes.append(it.value());
-
-            while (it.hasPrevious()) {
-                it.previous();
-
-                if (it.key() != priority)
-                    break;
-
-                _quickFixes.append(it.value());
-            }
+            _quickFixes = it.value();
         }
 
         if (! _quickFixes.isEmpty())