diff -Nur audacious-plugins-2.2-orig/src/amidi-plug/amidi-plug.c audacious-plugins-2.2/src/amidi-plug/amidi-plug.c --- audacious-plugins-2.2-orig/src/amidi-plug/amidi-plug.c 2009-11-22 23:49:52.000000000 +0100 +++ audacious-plugins-2.2/src/amidi-plug/amidi-plug.c 2010-05-31 12:17:41.000000000 +0200 @@ -259,7 +259,7 @@ soft_init (); if (filename != NULL) - title = g_path_get_basename(filename_uri); + title = g_path_get_basename(filename); else title = g_strdup(filename_uri); diff -Nur audacious-plugins-2.2-orig/src/amidi-plug/i_backend.c audacious-plugins-2.2/src/amidi-plug/i_backend.c --- audacious-plugins-2.2-orig/src/amidi-plug/i_backend.c 2009-11-22 23:49:52.000000000 +0100 +++ audacious-plugins-2.2/src/amidi-plug/i_backend.c 2010-05-31 12:18:24.000000000 +0200 @@ -105,7 +105,7 @@ { gchar * module_pathfilename = g_strjoin( "" , AMIDIPLUGBACKENDDIR , "/ap-" , module_name , ".so" , NULL ); DEBUGMSG( "loading backend '%s'\n" , module_pathfilename ); - backend.gmodule = g_module_open( module_pathfilename , 0 ); + backend.gmodule = g_module_open( module_pathfilename, G_MODULE_BIND_LAZY|G_MODULE_BIND_LOCAL ); if ( backend.gmodule != NULL ) { diff -Nur audacious-plugins-2.2-orig/src/amidi-plug/i_midi.c audacious-plugins-2.2/src/amidi-plug/i_midi.c --- audacious-plugins-2.2-orig/src/amidi-plug/i_midi.c 2009-11-22 23:49:52.000000000 +0100 +++ audacious-plugins-2.2/src/amidi-plug/i_midi.c 2010-05-31 12:17:20.000000000 +0200 @@ -659,8 +659,10 @@ /* IMPORTANT this couple of important values is set by i_midi_set_length */ mf->length = length_microsec; - mf->avg_microsec_per_tick = (gint)(length_microsec / mf->max_tick); - + if (mf->max_tick) + mf->avg_microsec_per_tick = (gint)(length_microsec / mf->max_tick); + else + mf->avg_microsec_per_tick = 1; /* dummy - protect against div-by-zero */ return; }