diff --git a/addon/hint/show-hint.js b/addon/hint/show-hint.js
index 7eefad8b5b361ae82c7b2980c7262f4c8315533f..204e136fe85237ec188289accc1592afcb3f8477 100644
--- a/addon/hint/show-hint.js
+++ b/addon/hint/show-hint.js
@@ -296,10 +296,10 @@
     });
 
     if (completion.options.completeOnSingleClick)
-      CodeMirror.on(hints, "mousemove", function(e) {
-        var elt = getHintElement(hints, e.target || e.srcElement);
-        if (elt && elt.hintId != null)
-          widget.changeActive(elt.hintId);
+      CodeMirror.on(hints, "mouseover", function(e) {
+        var target = e.target || e.srcElement
+        if (target.hintId != null && !target.contains(e.relatedTarget || e.fromElement))
+          widget.changeActive(target.hintId);
       });
 
     CodeMirror.signal(data, "select", completions[0], hints.firstChild);