diff -r 1d625fbe6c22 -r e3df8d7a9752 src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java --- a/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Thu Dec 09 15:50:34 2010 +0000 +++ b/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Thu Dec 09 15:50:57 2010 +0000 @@ -1168,7 +1168,7 @@ VarSymbol sym = var.sym; databuf.appendChar(pool.put(sym.name)); Type vartype = sym.erasure(types); - if (!types.isSameType(sym.type, vartype)) + if (needsLocalVariableTypeEntry(sym.type)) nGenericVars++; databuf.appendChar(pool.put(typeSig(vartype))); databuf.appendChar(var.reg); @@ -1185,7 +1185,7 @@ for (int i=0; i