diff --git a/src/plugins/texteditor/completionwidget.cpp b/src/plugins/texteditor/completionwidget.cpp
index 8c0b4f19e615f2a6c7bf8a7a18b0b80ff3c8fce3..3fc70927ae8528a67c560aef923d0f39a10019d1 100644
--- a/src/plugins/texteditor/completionwidget.cpp
+++ b/src/plugins/texteditor/completionwidget.cpp
@@ -45,7 +45,6 @@
 #include <QtGui/QLabel>
 #include <QtGui/QStylePainter>
 #include <QtGui/QToolTip>
-#include <QtCore/QTimer>
 
 #include <limits.h>
 
@@ -256,6 +255,10 @@ CompletionListView::CompletionListView(CompletionSupport *support, ITextEditable
 {
     QTC_ASSERT(m_editorWidget, return);
 
+    m_infoTimer.setInterval(1000);
+    m_infoTimer.setSingleShot(true);
+    connect(&m_infoTimer, SIGNAL(timeout()), SLOT(maybeShowInfoTip()));
+
     setAttribute(Qt::WA_MacShowFocusRect, false);
     setUniformItemSizes(true);
     setSelectionBehavior(QAbstractItemView::SelectItems);
@@ -269,7 +272,6 @@ CompletionListView::CompletionListView(CompletionSupport *support, ITextEditable
     if (verticalScrollBar())
         verticalScrollBar()->setAttribute(Qt::WA_MacMiniSize);
 #endif
-
 }
 
 CompletionListView::~CompletionListView()
@@ -285,6 +287,7 @@ void CompletionListView::maybeShowInfoTip()
 
     if (infoTip.isEmpty()) {
         delete m_infoFrame.data();
+        m_infoTimer.setInterval(200);
         return;
     }
 
@@ -295,19 +298,21 @@ void CompletionListView::maybeShowInfoTip()
     QRect r = rectForIndex(current);
     m_infoFrame->move(
             (parentWidget()->mapToGlobal(
-                    parentWidget()->rect().topRight() + QPoint(0, 0))).x(),
+                    parentWidget()->rect().topRight())).x() + 3,
             mapToGlobal(r.topRight()).y() - verticalOffset()
             );
     m_infoFrame->setText(infoTip);
     m_infoFrame->adjustSize();
     m_infoFrame->show();
     m_infoFrame->raise();
+
+    m_infoTimer.setInterval(0);
 }
 
 void CompletionListView::currentChanged(const QModelIndex &current, const QModelIndex &previous)
 {
     QListView::currentChanged(current, previous);
-    QTimer::singleShot(0, this, SLOT(maybeShowInfoTip()));
+    m_infoTimer.start();
 }
 
 
diff --git a/src/plugins/texteditor/completionwidget.h b/src/plugins/texteditor/completionwidget.h
index c16e01550768cbc46a7de914d6803aadbd5568b6..ece02904b115bb125910bc3149f903bcb697e378 100644
--- a/src/plugins/texteditor/completionwidget.h
+++ b/src/plugins/texteditor/completionwidget.h
@@ -31,7 +31,8 @@
 #define COMPLETIONWIDGET_H
 
 #include <QtGui/QListView>
-#include <QPointer>
+#include <QtCore/QPointer>
+#include <QtCore/QTimer>
 
 namespace TextEditor {
 
@@ -113,6 +114,7 @@ private:
     AutoCompletionModel *m_model;
     CompletionSupport *m_support;
     QPointer<CompletionInfoFrame> m_infoFrame;
+    QTimer m_infoTimer;
 };
 
 } // namespace Internal