Buggy code:
void manageChildren ( ) { } void markLayout ( boolean changed , boolean all ) { } Decorations menuShell ( ) { } boolean mnemonicHit ( char key ) { } boolean mnemonicMatch ( char key ) { } public void moveAbove ( Control control ) { } public void moveBelow ( Control control ) { } void overrideTranslations ( ) { } public void pack ( ) { } public void pack ( boolean changed ) { } void propagateChildren ( boolean enabled ) { } void propagateWidget ( boolean enabled ) { } void realizeChildren ( ) { } public void redraw ( ) { } public void redraw ( int x , int y , int width , int height , boolean all ) { } void redrawWidget ( int x , int y , int width , int height , boolean redrawAll , boolean allChildren ) { } void releaseChild ( ) { } void releaseWidget ( ) { } public void removeControlListener ( ControlListener listener ) { } public void removeFocusListener ( FocusListener listener ) { } public void removeHelpListener ( HelpListener listener ) { } public void removeKeyListener ( KeyListener listener ) { } public void removeMouseListener ( MouseListener listener ) { } public void removeMouseMoveListener ( MouseMoveListener listener ) { } public void removeMouseTrackListener ( MouseTrackListener listener ) { } public void removePaintListener ( PaintListener listener ) { } public void removeTraverseListener ( TraverseListener listener ) { } void sendHelpEvent ( int callData ) { } boolean sendMouseEvent ( int type ) { } boolean sendMouseEvent ( int type , int button , int count , int detail , boolean send , int time , int x , int y , int state ) { } boolean sendMouseEvent ( int type , XButtonEvent xEvent ) { } boolean sendMouseEvent ( int type , XCrossingEvent xEvent ) { } boolean sendMouseEvent ( int type , XMotionEvent xEvent ) { } public void setBackground ( Color color ) { } void setBackgroundPixel ( int pixel ) { } boolean setBounds ( int x , int y , int width , int height , boolean move , boolean resize ) { } public void setBounds ( int x , int y , int width , int height ) { } public void setBounds ( Rectangle rect ) { } public void setCapture ( boolean capture ) { } public void setCursor ( Cursor cursor ) { } public void setEnabled ( boolean enabled ) { } public boolean setFocus ( ) { } public void setFont ( Font font ) { } public void setForeground ( Color color ) { } void setForegroundPixel ( int pixel ) { } public void setLayoutData ( Object layoutData ) { } public void setLocation ( int x , int y ) { } public void setLocation ( Point location ) { } public void setMenu ( Menu menu ) { } public boolean setParent ( Composite parent ) { } void setParentTraversal ( ) { } boolean setRadioSelection ( boolean value ) { } public void setRedraw ( boolean redraw ) { } boolean setTabGroupFocus ( boolean next ) { } boolean setTabItemFocus ( boolean next ) { } public void setSize ( int width , int height ) { } public void setSize ( Point size ) { } public void setToolTipText ( String string ) { } public void setVisible ( boolean visible ) { } void setZOrder ( Control control , boolean above ) { } void setZOrder ( Control control , boolean above , boolean fixChildren ) { int topHandle1 = topHandle ( ) ; int display = OS . XtDisplay ( topHandle1 ) ; if ( display == 0 ) return ; if ( ! ( OS . XtIsRealized ( topHandle1 ) ) ) { Shell shell = this . getShell ( ) ; shell . realizeWidget ( ) ; } int window1 = OS . XtWindow ( topHandle1 ) ; if ( window1 == 0 ) return ; int redrawWindow = ( fixChildren ) ? parent . redrawWindow : 0 ; <START_BUG> if ( ( control == null ) && ( redrawWindow == 0 ) ) { <END_BUG> if ( above ) { OS . XRaiseWindow ( display , window1 ) ; if ( fixChildren ) parent . moveAbove ( topHandle1 , 0 ) ; } else { OS . XLowerWindow ( display , window1 ) ; if ( fixChildren ) parent . moveBelow ( topHandle1 , 0 ) ; } return ; } int window2 ; int topHandle2 = 0 ; if ( control != null ) { topHandle2 = control . topHandle ( ) ; if ( display != ( OS . XtDisplay ( topHandle2 ) ) ) return ; if ( ! ( OS . XtIsRealized ( topHandle2 ) ) ) { Shell shell = control . getShell ( ) ; shell . realizeWidget ( ) ; } window2 = OS . XtWindow ( topHandle2 ) ; } else { window2 = redrawWindow ; } if ( window2 == 0 ) return ; XWindowChanges struct = new XWindowChanges ( ) ; struct . sibling = window2 ; struct . stack_mode = ( above ) ? OS . Above : OS . Below ; if ( window2 == redrawWindow ) struct . stack_mode = OS . Below ; int screen = OS . XDefaultScreen ( display ) ; int flags = ( OS . CWStackMode ) | ( OS . CWSibling ) ; OS . XReconfigureWMWindow ( display , window1 , screen , flags , struct ) ; if ( above ) { if ( fixChildren ) parent . moveAbove ( topHandle1 , topHandle2 ) ; } else { if ( fixChildren ) parent . moveBelow ( topHandle1 , topHandle2 ) ; } } void showMenu ( int x , int y ) { } public Point toControl ( int x , int y ) { }

Fix:
if ( ( control == null ) && ( ( ! above ) || ( redrawWindow == 0 ) ) ) {