In fact, I was able to reproduce the problem with a simple test idl file. Here is the idl foo.idl: ------------------------------------------------------------------------------ module foo { struct TnhsAlarmOperations { long junk; }; }; ------------------------------------------------------------------------------ This Attachment shows a stackTrack that I dumped in a modified version of lexer.java - with debug output in strictJavaEscapeCheck. [java] strictJavaEscapeCheck found String TnhsAlarmOperations needs escape [java] Dumping the stack to see who calls this: [java] java.lang.NullPointerException [java] at org.jacorb.idl.lexer.strictJavaEscapeCheck(Unknown Source) [java] at org.jacorb.idl.IdlSymbol.escapeName(Unknown Source) [java] at org.jacorb.idl.StructType.parse(Unknown Source) [java] at org.jacorb.idl.TypeDeclaration.parse(Unknown Source) [java] at org.jacorb.idl.Definition.parse(Unknown Source) [java] at org.jacorb.idl.SymbolList.parse(Unknown Source) [java] at org.jacorb.idl.Module.parse(Unknown Source) [java] at org.jacorb.idl.Definition.parse(Unknown Source) [java] at org.jacorb.idl.Spec.parse(Unknown Source) [java] at org.jacorb.idl.CUP$actions.CUP$do_action(Unknown Source) [java] at org.jacorb.idl.parser.do_action(Unknown Source) [java] at java_cup.runtime.lr_parser.parse(Unknown Source) [java] at org.jacorb.idl.parser.compile(Unknown Source) [java] at org.jacorb.idl.parser.compileAndHandle(Unknown Source) [java] at org.jacorb.idl.parser.main(Unknown Source) ------------------------------------------------------------------------------ *** So, the question is, why is it doing this for a STRUCTURE whose name CONTAINS one of the 6 restricted keywords, but is not equal to one of the 6 restricted keywords?