diff -ru vorbis-tools-1.2.0/ogg123/ogg123.c vorbis-tools-1.2.0-patched/ogg123/ogg123.c --- vorbis-tools-1.2.0/ogg123/ogg123.c 2008-03-03 00:37:26.000000000 -0500 +++ vorbis-tools-1.2.0-patched/ogg123/ogg123.c 2009-03-03 23:22:48.000000000 -0500 @@ -466,7 +466,6 @@ /* Setup signal handlers and callbacks */ - ATEXIT (exit_cleanup); signal (SIGINT, signal_handler); signal (SIGTSTP, signal_handler); signal (SIGCONT, signal_handler); @@ -500,11 +499,12 @@ play(playlist_array[i]); i++; } - } while (options.repeat); + } while (options.repeat && !sig_request.exit); } playlist_array_destroy(playlist_array, items); + exit_cleanup (); exit (exit_status); } @@ -740,9 +740,6 @@ status_reset_output_lock(); /* In case we were killed mid-output */ status_message(1, _("Done.")); - - if (sig_request.exit) - exit (exit_status); }