rem: free(path);
add: wfree(path);
context: listCallback(void *self, void *data){    WMList *lPtr = (WMList*)self;    IconPanel *panel = (IconPanel*)data;    char *path;    if (lPtr==panel->dirList) {	path = WMGetListSelectedItem(lPtr)->text;		WMSetTextFieldText(panel->fileField, path);	WMSetLabelImage(panel->iconView, NULL);	WMSetButtonEnabled(panel->okButton, False);	WMClearList(panel->iconList);	listPixmaps(panel->scr, panel->iconList, path);	    } else {	char *tmp, *iconFile;		path = WMGetListSelectedItem(panel->dirList)->text;	tmp = wexpandpath(path);	iconFile = WMGetListSelectedItem(panel->iconList)->text;	path = wmalloc(strlen(tmp)+strlen(iconFile)+4);	strcpy(path, tmp);	strcat(path, "/");	strcat(path, iconFile);	free(tmp);	WMSetTextFieldText(panel->fileField, path);	setViewedImage(panel, path);	free(path);    }}