Disable RenderState for Child Nodes

My question is pretty simple.  How do I disable a RenderState such as a GLSLShaderObjectsState for child nodes.  I want my shader to affect the node it's attached to, but not its child.  (I. E. I want my shader to affect my player, but not the gun he's holding.)

set a empty GlslShader to the gun and done

Anything more elegant?  This seems like it would take time if I have to do this when switching a guns and such.