var/icon/I = new(usr.icon)
var/icon/a = new(usr.overlays)
a = usr.overlays
I = usr.icon

Problem description:
I can get the user's icon to change, but the overlays won't change along with it. Is there any way to rotate the overlays without making a new icon state for the overlays?

Overlays is actually a list of overlay objects, so it would be a bit impractical to try and Turn() a list :P

I'm not completely positive, but pretty sure this is more appropriate:

for(var/icon/o in usr.Overlays)

In response to Hobbesx
Nope, doesn't work. I've tried basially all of that, and none of it seems to work.
In response to Joutenjinzounin
Overlays is a 'special' list. You can't perform several list operations on it. Look it up in the reference.

I think you might have to keep a seperate list, and add icons to that as they're added to the overlay. Then rotate the icons in the list, and set them to your overlays, if you know what I mean.

There may be a more efficient/less list intensive version, but I can't think of it right now.