I
think it's to do with the order that you (un)load dlls.
For example:
Crash (Order unloaded: first dll loaded to last dll loaded):
on *:exit:{
var %i = 1
while $dll(%i) {
dll -u $dll(%i)
inc %i
}
}
No crash (Order unloaded: last dll loaded to first dll loaded):
on *:exit:{
var %i = $dll(0)
while %i {
dll -u $dll(%i)
dec %i
}
}
However, neither of these seem to crash on XP (what i have)
To sum it up, let's say you load "a.dll", then after you've loaded that, you load "b.dll", "a.dll" should
not be unloaded before "b.dll", "b.dll" should be unloaded first.