diff -r ea218b1a2000 -r 63360b4ca6c4 jdk/src/share/classes/java/awt/Container.java --- a/jdk/src/share/classes/java/awt/Container.java Fri Apr 17 16:30:15 2009 +0400 +++ b/jdk/src/share/classes/java/awt/Container.java Fri Apr 17 16:42:14 2009 +0400 @@ -3977,10 +3977,8 @@ Component comp = getComponent(index); if (!comp.isLightweight()) { comp.applyCurrentShape(); - if (comp instanceof Container && ((Container)comp).getLayout() == null) { - ((Container)comp).recursiveApplyCurrentShape(); - } - } else if (comp instanceof Container && + } + if (comp instanceof Container && ((Container)comp).hasHeavyweightDescendants()) { ((Container)comp).recursiveApplyCurrentShape(); }