rem: above != NULL;
add: iter != NULL;
context: wRaiseFrame(WCoreWindow *frame){    WCoreWindow *wlist = frame, *wlist_above;    int level = frame->stacking->window_level;    WScreen *scr = frame->screen_ptr;    /* already on top */    if (frame->stacking->above == NULL) {	return;    }    /* insert on top of other windows */    while (wlist) {	if (wlist == (wlist_above = wlist->stacking->above)) {	    wwarning("You just found a bug in wmaker. Please try to figure what type of raising/lowering operations you did with which applications and report. Please give complete information about how to reproduce it.");	    break;	} else {	    wlist=wlist_above;	}    }    /* window is inserted before the point found */    if (wlist==NULL) {	/* top most window (last on the list) */	if (frame->stacking->under)	    frame->stacking->under->stacking->above = frame->stacking->above;	if (frame->stacking->above)	    frame->stacking->above->stacking->under = frame->stacking->under;		frame->stacking->above = NULL;	frame->stacking->under = WMGetFromBag(scr->stacking_list, level);	frame->stacking->under->stacking->above = frame;	WMSetInBag(scr->stacking_list, level, frame);    } else if (frame!=wlist) {	if (frame->stacking->under)	    frame->stacking->under->stacking->above = frame->stacking->above;	if (frame->stacking->above)	    frame->stacking->above->stacking->under = frame->stacking->under;		frame->stacking->above = wlist;	frame->stacking->under = wlist->stacking->under;	if (wlist->stacking->under)	    wlist->stacking->under->stacking->above = frame;	wlist->stacking->under = frame;    }#ifdef removed    if (wPreferences.on_top_transients)#endif    {	/* raise transients under us from bottom to top 	 * so that the order is kept */  again:	wlist = frame->stacking->under;	while (wlist && wlist->stacking->under)	  wlist = wlist->stacking->under;	while (wlist && wlist!=frame) {	    if (wlist->stacking->child_of == frame) {		wRaiseFrame(wlist);		goto again;	    }	    wlist = wlist->stacking->above;	}# if 0	again:	wlist = frame->stacking->under;	while (wlist) {	    if (wlist->stacking->child_of == frame) {		/* transient for us */		wRaiseFrame(wlist);		goto again; /* need this or we'll get in a loop */	    } 	    wlist = wlist->stacking->under;	}#endif    }    /* try to optimize things a little */    if (frame->stacking->above == NULL) {	WCoreWindow *above=NULL;	WMBagIterator iter;	for (above = WMBagIteratorAtIndex(scr->stacking_list, level+1, &iter);	     above != NULL;	     above = WMBagNext(scr->stacking_list, &iter)) {	    	    /* can't optimize */	    while (above->stacking->under)		above = above->stacking->under;	    break;	}	if (above == NULL) {	    XRaiseWindow(dpy, frame->window);	} else {	    moveFrameToUnder(above, frame);	}    } else {	moveFrameToUnder(frame->stacking->above, frame);    }#ifdef KWM_HINTS    {	WWindow *wwin = wWindowFor(frame->window);	if (wwin != NULL)	    wKWMSendEventMessage(wwin, WKWMRaiseWindow);    }#endif#ifdef VIRTUAL_DESKTOP    wWorkspaceRaiseEdge(scr);#endif}