diff -r abe992640c5a -r 62073a5becc5 src/share/classes/com/sun/tools/javac/comp/Attr.java --- a/src/share/classes/com/sun/tools/javac/comp/Attr.java Tue Aug 11 01:12:13 2009 +0100 +++ b/src/share/classes/com/sun/tools/javac/comp/Attr.java Tue Aug 11 01:12:40 2009 +0100 @@ -1554,13 +1554,18 @@ typeargtypes, true, tree.varargsElement != null); assert sym.kind < AMBIGUOUS || tree.constructor.type.isErroneous(); tree.constructor = sym; - tree.constructorType = checkMethod(clazztype, - tree.constructor, - localEnv, - tree.args, - argtypes, - typeargtypes, - localEnv.info.varArgs); + if (tree.constructor.kind > ERRONEOUS) { + tree.constructorType = syms.errType; + } + else { + tree.constructorType = checkMethod(clazztype, + tree.constructor, + localEnv, + tree.args, + argtypes, + typeargtypes, + localEnv.info.varArgs); + } } if (tree.constructor != null && tree.constructor.kind == MTH)