rem: free(command);
add: wfree(command);
context: keepIconsCallback(WMenu *menu, WMenuEntry *entry){    WAppIcon *clickedIcon = (WAppIcon*)entry->clientdata;    WDock *dock;    WAppIcon *aicon;    WMBag *selectedIcons;    WMBagIterator it;    assert(clickedIcon!=NULL);    dock = clickedIcon->dock;    selectedIcons = getSelected(dock);    if (!WMGetBagItemCount(selectedIcons) 	&& clickedIcon!=dock->screen_ptr->clip_icon) {	char *command = NULL;		if (!clickedIcon->command && !clickedIcon->editing) {	    clickedIcon->editing = 1;	    if (wInputDialog(dock->screen_ptr, _("Keep Icon"),			     _("Type the command used to launch the application"),			     &command)) {		if (command && (command[0]==0 ||				(command[0]=='-' && command[1]==0))) {		    free(command);		    command = NULL;		}		clickedIcon->command = command;		clickedIcon->editing = 0;	    } else {		clickedIcon->editing = 0;		if (command)		    free(command);		WMFreeBag(selectedIcons);		return;	    }	}	WMPutInBag(selectedIcons, clickedIcon);    }    WM_ITERATE_BAG(selectedIcons, aicon, it) {	if (aicon->icon->selected)            wIconSelect(aicon->icon);        if (aicon && aicon->attracted && aicon->command) {	    aicon->attracted = 0;	    if (aicon->icon->shadowed) {		aicon->icon->shadowed = 0;		aicon->icon->force_paint = 1;		wAppIconPaint(aicon);	    }        }    }    WMFreeBag(selectedIcons);}