correct fix for b805067

and separate out immutable error, and explicitly throw an exception