Well, I'd have to see more of your proc to figure this out. The problem lies beyond the very very small snippet you posted.
I did notice that usr appears in your snippet, even though the snippet itself doesn't look like it belongs in any kind of verb-like action. It looks like something that should be done passively at login.
to begin with, and not screw with the isnull() stuff. Perhaps its having trouble trying to look in the list before it's been created at runtime. You may want to move ..() to the end of your New() proc and see what happens.
Well, I see a few potential areas of concern; you're using weak programming practices in 3 spots and I think one of them is causing the trouble.
Login() is only somewhat usr-safe here. You don't need usr in Login() and src is safer anyway, so just use src.
You've named the mob var, mute, the same as a global var. This is a bad, bad idea. I'd at least rename the global list to something like mutelist.
You've used if(isnull(mute)) to check if the global list is a null. But to judge by what I've seen of others' attempts to save and reload lists, chances are an earlier version of your program screwed up the save and saved a string "" instead. If the string is empty, then you should be able to use if(!mute) instead. The latter I'd consider safer because it's a broader test. But safest of all in this particular case would be if(!istype(mute)), which will catch any non-list value including null. When putting in sanity-checking, always cast a wide net.
Ah, but is it declared as a list? You should make sure that's var/list/mute, not just var/mute. There's where the error comes in.
Using : instead of . would get rid of the compiler error, but it's of course not as safe because what you see here is a helpful sanity check.
Lummox JR