if(data == (ek_data_t)contikidsc[i]->icon) {
if(contikidsc[i] != NULL && data == (ek_data_t)contikidsc[i]->icon) {
DISPATCHER_SIGHANDLER(program_handler_sighandler, s, data){  unsigned char err, i;  DISPATCHER_SIGHANDLER_ARGS(s, data);    if(s == ctk_signal_button_activate) {    if(data == (ek_data_t)&loadbutton) {      ctk_window_close(&runwindow);#ifdef WITH_LOADER_ARCH      program_handler_load(name);#endif /* WITH_LOADER_ARCH */    } else if(data == (ek_data_t)&errorokbutton) {      ctk_dialog_close();      ctk_redraw();    }    for(i = 0; i < CTK_CONF_MAXMENUITEMS; ++i) {      if(data == (ek_data_t)contikidsc[i]->icon) {	RUN(contikidsc[i]->prgname, contikidsc[i]->init);	break;      }    }      } else if(s == ctk_signal_menu_activate) {    if((struct ctk_menu *)data == &contikimenu) {      if(contikimenu.active == runmenuitem) {	ctk_window_open(&runwindow);	ctk_redraw();      } else if(contikidsc[contikimenu.active - 1] != NULL) {	RUN(contikidsc[contikimenu.active - 1]->prgname,	    contikidsc[contikimenu.active - 1]->init);      }    }            } else if(s == loader_signal_load) {    ctk_dialog_close();    err = LOADER_LOAD(data);    if(err != LOADER_OK) {      ctk_label_set_text(&errortype, errormsgs[err]);      ctk_dialog_open(&errordialog);    }    ctk_redraw();  } }