I have attached a better patch (I have not tried python+tk). The idea is to use `csound->widgetGlobals' as a switch for the fltk opcodes. If it is not-NULL, `csoundModuleInit' sets only dummy opcodes and `widget_init' is bypassed because the `widget_init' function (widgets.cpp) contains if (csound->widgetGlobals == NULL) ... For example, to disable fltk, it is enough csound->widgetGlobals = malloc(1); and static int DummyExitGraph(CSOUND *csound) { IGN(csound); return 0; } static int dummy_widget_reset(CSOUND *csound, void *pp) { IGN(pp); free(csound->widgetGlobals); return OK; } csound->SetExitGraphCallback(csound, DummyExitGraph); csound->RegisterResetCallback(csound, NULL, dummy_widget_reset); tito