diff -ru phplayersmenu-3.2.0/layersmenu-horizontal-1.txt phplayersmenu-3.2.0.onclick/layersmenu-horizontal-1.txt
--- phplayersmenu-3.2.0/layersmenu-horizontal-1.txt	2004-08-14 23:17:21.000000000 +0200
+++ phplayersmenu-3.2.0.onclick/layersmenu-horizontal-1.txt	2004-08-17 10:00:57.471661904 +0200
@@ -1,4 +1,5 @@
-.|...GNU's Not Unix!|http://www.gnu.org/|The Free Software Foundation
+.|...GNU's Not Unix!||The Free Software Foundation
+..|...GNU's Not Unix!|http://www.gnu.org/|The Free Software Foundation
 .|Open Source
 ..|Portals
 ...|O. S. Devel. Network|http://www.osdn.com/
diff -ru phplayersmenu-3.2.0/lib/layersmenu.inc.php phplayersmenu-3.2.0.onclick/lib/layersmenu.inc.php
--- phplayersmenu-3.2.0/lib/layersmenu.inc.php	2004-08-14 23:37:18.000000000 +0200
+++ phplayersmenu-3.2.0.onclick/lib/layersmenu.inc.php	2004-08-17 09:53:13.298226992 +0200
@@ -547,9 +547,9 @@
 				continue;
 			}
 			if ($this->tree[$cnt]['not_a_leaf']) {
-				$this->tree[$cnt]['onmouseover'] = ' onmouseover="moveLayerX1(' . "'" . $this->tree[$cnt]['layer_label'] . "', '" . $menu_name . "') ; LMPopUp('" . $this->tree[$cnt]['layer_label'] . "'" . ', false);"';
+				$this->tree[$cnt]['onmouseover'] = ' onclick="moveLayerX1(' . "'" . $this->tree[$cnt]['layer_label'] . "', '" . $menu_name . "') ; LMPopUpRoot('" . $this->tree[$cnt]['layer_label'] . "'" . ', false);"';
 			} else {
-				$this->tree[$cnt]['onmouseover'] = ' onmouseover="shutdown();"';
+				$this->tree[$cnt]['onmouseover'] = ' onclick="shutdown();"';
 			}
 			$t->setVar(array(
 				'menu_layer_label'	=> $menu_name . $this->tree[$cnt]['layer_label'],
@@ -709,9 +709,9 @@
 				continue;
 			}
 			if ($this->tree[$cnt]['not_a_leaf']) {
-				$this->tree[$cnt]['onmouseover'] = ' onmouseover="moveLayerX(' . "'" . $this->tree[$cnt]['layer_label'] . "') ; moveLayerY('" . $this->tree[$cnt]['layer_label'] . "') ; LMPopUp('" . $this->tree[$cnt]['layer_label'] . "'" . ', false);"';
+				$this->tree[$cnt]['onmouseover'] = ' onclick="moveLayerX(' . "'" . $this->tree[$cnt]['layer_label'] . "') ; moveLayerY('" . $this->tree[$cnt]['layer_label'] . "') ; LMPopUpRoot('" . $this->tree[$cnt]['layer_label'] . "'" . ', false);"';
 			} else {
-				$this->tree[$cnt]['onmouseover'] = ' onmouseover="shutdown();"';
+				$this->tree[$cnt]['onmouseover'] = ' onclick="shutdown();"';
 			}
 			$t->setVar(array(
 				'imgwww'	=> $this->imgwww,
diff -ru phplayersmenu-3.2.0/libjs/layersmenu.js phplayersmenu-3.2.0.onclick/libjs/layersmenu.js
--- phplayersmenu-3.2.0/libjs/layersmenu.js	2004-08-16 14:03:38.000000000 +0200
+++ phplayersmenu-3.2.0.onclick/libjs/layersmenu.js	2004-08-17 10:06:21.680374688 +0200
@@ -1,8 +1,8 @@
 // PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/
 
-useTimeouts = 1;
+useTimeouts = 0;
 timeoutLength = 1000;	// time in ms; not significant if useTimeouts = 0;
-shutdownOnClick = 0;
+//shutdownOnClick = 0;	// no more significant
 
 loaded = 0;
 layersMoved = 0;
@@ -12,9 +12,9 @@
 if (Opera56 || IE4) {
 	useTimeouts = 0;
 }
-if (NS4 || Opera56 || IE4) {
-	shutdownOnClick = 1;
-}
+//if (NS4 || Opera56 || IE4) {	// no more significant
+//	shutdownOnClick = 1;
+//}
 
 currentY = 0;
 function grabMouse(e)	// for NS4
@@ -48,13 +48,23 @@
 		seeThroughElements(true);
 	}
 }
-if (shutdownOnClick) {
+function doNothing() {}
+function handleShutdown()
+{
 	if (NS4) {
 		document.onmousedown = shutdown;
 	} else {
 		document.onclick = shutdown;
 	}
 }
+function unhandleShutdown()
+{
+	if (NS4) {
+		document.onmousedown = doNothing;
+	} else {
+		document.onclick = doNothing;
+	}
+}
 
 function setLMTO()
 {
@@ -264,6 +274,13 @@
 	layerPoppedUp = menuName;
 }
 
+function LMPopUpRoot(menuName, isCurrent)
+{
+	unhandleShutdown();
+	LMPopUp(menuName, isCurrent);
+	setTimeout('handleShutdown();', 100);
+}
+
 function resizeHandler()
 {
 	if (NS4) {
