Then one last opinion(if I understand the underlying problem). Why not mirror layer state data in your own custom dictionary. Then you can easily "restore" a deleted layer state programatically, add a custom xrecord with handle information of the layout(s) the layer state is attached to, and keep track of associated layer states like deleting un-used ones (maybe providing the user with a back-up mechanism in that instance). You would still access the LayerStateManager via activex to apply layer states to the active document, you just have your own "untouchable" record to keep things coordinated. You could set up your own GUI for createing, editing, and associating layer states with layouts AND react to the layer command when users "inadvertainly" do an end around and edit layer states there. I've certainly got alot out of this discourse. I can see where a program like this would have far reaching benifits in a small architectural firm that doesn't need a heavy handed "Standards" program. I don't have time right now - I don't know how I'm going to get through this month - but I'd like to play around with this when I get a chance. I'll fill you in if I do .. . .. jb