diff -Naur a/popup.js b/popup.js
--- a/popup.js	2011-04-05 18:56:41.000000000 +0200
+++ b/popup.js	2012-05-02 21:09:17.256464239 +0200
@@ -389,6 +389,9 @@
   // Trigger hiding
   var delayedHide = function(){
     clearTimeout(thisObject.hideTimeout);
+    if (thisObject.enterTimeout) {
+      clearTimeout(thisObject.enterTimeout);
+    }
     thisObject.hideTimeout = setTimeout(
       function(){
         PopupElement.hide.apply(thisObject);
@@ -414,21 +417,24 @@
   this.title.bind('mouseover', cancelHide);
 
   // Trigger showing
-  this.title.bind('mouseenter',
-    function(){
-      if (!thisObject.visible){
-        PopupElement.show.apply(thisObject);
-        if (thisObject.parent){
-          for(var i in thisObject.parent.children){
-            if (thisObject.parent.children[i] != thisObject){
-              PopupElement.hide.apply(thisObject.parent.children[i]);
+  var handler = function(event){
+    thisObject.enterTimeout = setTimeout(
+      function(){
+        if (!thisObject.visible){
+          PopupElement.show.apply(thisObject);
+          if (thisObject.parent){
+            for(var i in thisObject.parent.children){
+              if (thisObject.parent.children[i] != thisObject){
+                PopupElement.hide.apply(thisObject.parent.children[i]);
+              }
             }
           }
         }
-      }
-    }
-  );
-
+      }, Drupal.settings.popup.linger
+    );
+  }
+    
+  this.title.bind('mouseenter', handler);
 }
 
 
