the problem is in the way mirc creates/destroys overlapping popups.

put the following in a remote:
Code:
menu nicklist {
  a
}
menu nicklist {
  a
  .a
  ..a
  ...a
  ....a
  .....a : b
}


when a popup is destroyed mirc only releases the submenu's visible from where the menu is first declared. later (dynamically) added submenu's are not cleaned up.

after a few hundred clicks (depending on the number of uncleaned submenu's per click) the popup will not show up anymore. window creation will fail etc.

one can see why. popupmenus/windows require user objects. in winxp/nt/2k, adjust the task manager so that it shows the user objects used by processes. note that the number of user objects in use by mirc increases by 5 (the number of not-destroyed submenus) every time you click the nicklist with the popup menu above.

there is no work around other than not to use dynamic popups, that is, don't add entries to the same submenu multiple times. just to clarify:

the following popup has a memory leak:
Code:
menu nicklist {
  a
  .b : c
  d
}
menu nicklist {
  a
  .g : h
}

because the menu 'a' was declared before.

whereas the following popup works fine:
Code:
menu nicklist {
  a
  .b : c
}
menu nicklist {
  b
  .a : c
}

because it adds entries to a new menu 'b'.