public void serviceRepaints() {
        
        Log.log(Log.DRAW_EVENTS, "serviceRepaint() entered");
        
        // dont 

        if (component.repaintPending){

            if(EventQueue.isDispatchThread()){
                synchronized (component.repaintLock) {
                    java.awt.Graphics g = component.getGraphics();
                    if (g != null)
                        component.paint(g);
                }
            }
            else {
            		for(int i = 0; i < 20; i++){
            			if(!component.repaintPending){
            				break;
            			}
                    try{
                        Thread.sleep(50);
                    }   
                    catch(InterruptedException e){
                    }
                }
            }
        }
        
        Log.log(Log.DRAW_EVENTS, "serviceRepaint() left");
    }