Index: client/audio.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/audio.c,v retrieving revision 1.7 diff -u -r1.7 audio.c --- client/audio.c 2002/05/24 07:59:05 1.7 +++ client/audio.c 2002/06/21 18:50:16 @@ -17,6 +17,7 @@ #include <string.h> #include <assert.h> +#include <stdlib.h> #include "support.h" #include "fcintl.h" @@ -76,6 +77,8 @@ if (found && i != selected_plugin) { freelog(LOG_DEBUG, "Shutting down %s", plugins[selected_plugin].name); + plugins[selected_plugin].stop(); + plugins[selected_plugin].wait(); plugins[selected_plugin].shutdown(); } @@ -163,6 +166,8 @@ exit(EXIT_FAILURE); } + atexit(audio_shutdown); + if (prefered_plugin_name && audio_select_plugin(prefered_plugin_name)) { return; } @@ -261,8 +266,10 @@ audio_play_sound("e_game_quit", NULL); plugins[selected_plugin].wait(); plugins[selected_plugin].shutdown(); + if (tagfile) { section_file_free(tagfile); + tagfile = NULL; } } Index: client/civclient.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/civclient.c,v retrieving revision 1.134 diff -u -r1.134 civclient.c --- client/civclient.c 2002/06/07 04:25:58 1.134 +++ client/civclient.c 2002/06/21 18:50:16 @@ -216,7 +216,6 @@ /* termination */ attribute_flush(); - audio_shutdown(); my_shutdown_network(); exit(EXIT_SUCCESS);