diff -Nru lmms-0.4.4.orig/plugins/zynaddsubfx/fltk/src/filename_list.cxx lmms-0.4.4/plugins/zynaddsubfx/fltk/src/filename_list.cxx --- lmms-0.4.4.orig/plugins/zynaddsubfx/fltk/src/filename_list.cxx 2009-05-05 02:13:15.000000000 +0300 +++ lmms-0.4.4/plugins/zynaddsubfx/fltk/src/filename_list.cxx 2009-05-31 19:02:01.256735738 +0300 @@ -67,7 +67,7 @@ // The vast majority of UNIX systems want the sort function to have this // prototype, most likely so that it can be passed to qsort without any // changes: - int n = scandir(d, list, 0, (int(*)(const void*,const void*))sort); + int n = scandir(d, list, 0, (int(*)(const dirent **,const dirent **))sort); #else // This version is when we define our own scandir (WIN32 and perhaps // some Unix systems) and apparently on IRIX: diff -Nru lmms-0.4.4.orig/plugins/zynaddsubfx/fltk/src/fl_set_fonts_xft.cxx lmms-0.4.4/plugins/zynaddsubfx/fltk/src/fl_set_fonts_xft.cxx --- lmms-0.4.4.orig/plugins/zynaddsubfx/fltk/src/fl_set_fonts_xft.cxx 2009-05-05 02:13:15.000000000 +0300 +++ lmms-0.4.4/plugins/zynaddsubfx/fltk/src/fl_set_fonts_xft.cxx 2009-05-31 19:12:00.112944275 +0300 @@ -253,13 +253,14 @@ // So the bit we want is up to the first comma - BUT some strings have // more than one name, separated by, guess what?, a comma... stop = start = first = 0; - stop = strchr((const char *)font, ','); - start = strchr((const char *)font, ':'); + stop = strchr((char *)font, ','); + start = strchr((char *)font, ':'); + if ((stop) && (start) && (stop < start)) { first = stop + 1; // discard first version of name // find first comma *after* the end of the name - stop = strchr((const char *)start, ','); + stop = strchr((char *)start, ','); } else {