diff --git a/src/plugins/coreplugin/infobar.cpp b/src/plugins/coreplugin/infobar.cpp
index 6e3c78fdcb3643261eb6d77834fdc3b95ab57b48..2db4f3eb2d5adc283bc3af846fbbb78323d1f848 100644
--- a/src/plugins/coreplugin/infobar.cpp
+++ b/src/plugins/coreplugin/infobar.cpp
@@ -91,6 +91,16 @@ void InfoBar::removeInfo(const QString &id)
         }
 }
 
+bool InfoBar::containsInfo(const QString &id) const
+{
+    QListIterator<InfoBarEntry> it(m_infoBarEntries);
+    while (it.hasNext())
+        if (it.next().id == id)
+            return true;
+
+    return false;
+}
+
 void InfoBar::clear()
 {
     if (!m_infoBarEntries.isEmpty()) {
diff --git a/src/plugins/coreplugin/infobar.h b/src/plugins/coreplugin/infobar.h
index 4bdd92438350e9d34386f7f96a6c4e1670c6e828..652bf3d431438bbedbce43dc5cfb54e87be8601e 100644
--- a/src/plugins/coreplugin/infobar.h
+++ b/src/plugins/coreplugin/infobar.h
@@ -75,6 +75,7 @@ class CORE_EXPORT InfoBar : public QObject
 public:
     void addInfo(const InfoBarEntry &info);
     void removeInfo(const QString &id);
+    bool containsInfo(const QString &id) const;
     void clear();
 
 signals:
diff --git a/src/plugins/find/searchresultwidget.cpp b/src/plugins/find/searchresultwidget.cpp
index 918527364ba721433841654b6632027043429e0a..2b3f32362b75b9945ec4e6ff788aee78a1101de2 100644
--- a/src/plugins/find/searchresultwidget.cpp
+++ b/src/plugins/find/searchresultwidget.cpp
@@ -463,7 +463,7 @@ void SearchResultWidget::searchAgain()
 
 bool SearchResultWidget::showWarningMessage() const
 {
-    if (m_dontAskAgainGroup.isEmpty())
+    if (m_dontAskAgainGroup.isEmpty() || m_infoBar.containsInfo(QLatin1String(UNDO_WARNING_ID)))
         return false;
     // read settings
     QSettings *settings = Core::ICore::settings();