Hi all, I decided to do something constructive and hence came up with this cookie routine patch for the tree view. This was done on 2.2.9 and would work on any version of ISPConfig. I will soon create a straight replacement file version on my website when possible as I'm rebuilding my site. there's 3 sections to my patch. Add the extra functions javascript code for cookie reading/writing. Force the tree loop to check for saved settings and apply them. Set the Write settings to the cookie. when each branch is clicked. Here's the catches The top expand/collapse do not work currently (will be fixed later) First time open, all folders are expanded. These changes so far are session based. close the page and the changes are lost. permanent is available on request Here is my patch These 3 were done in the /home/admispconfig/ispconfig/web/isp_manager/inhalt_tree.php and seem to work fine. It could also be applied to the other inhalt_tree files which have the same annoying issue. Below: Add this anywhere in a valid area at the top next to other javascript functions. PHP: <!-- patch_start: Added cookie functions --> function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else var expires = ""; document.cookie = name+"="+value+expires+"; path=/"; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } <!-- patch_end: Added cookie functions --> Below: Search for the function maleVerz and add the section with the "patch" section PHP: function maleVerz(startEintrag,zweigEintrag) { VerzAuf = '<? echo htmlspecialchars($go_api->lng("Verzeichnis �ffnen"))?>' VerzZu = '<? echo htmlspecialchars($go_api->lng("Verzeichnis schliessen"))?>' var nachfolger = sucheNachfolgerVon(startEintrag); var aktuellerIndex = 1; while (aktuellerIndex <= nachfolger.laenge) { ausgabeFrame.write(zweigEintrag); <!--patched_start: Apply the cookie to the tree --> checkval = readCookie("mgr_"+nachfolger[aktuellerIndex].name); nachfolger[aktuellerIndex].offen = checkval; <!--patched_end: Apply the cookie to the tree --> Below: Either replace the function with lines below or just add the createCookie line in the exact section. PHP: <!-- patch_start: status change added cookie writing --> function aufzuVerz(name,status) { var eintragsIndex = indexVonEintrag(name); menuDaten[eintragsIndex].offen = status; timeOutname = setTimeout("maleMenu()",100); createCookie("mgr_"+name,status); if ((status == 1) && (menuDaten[eintragsIndex].url != '')) {frames["seiteFrame"].location.href=menuDaten[eintragsIndex].url}} <!-- patch_end: status change added cookie writing -->