diff -ru wineasio-0.7.3/asio.c wineasio-0.7.3-nuendo-fix/asio.c --- wineasio-0.7.3/asio.c 2007-12-27 13:53:41.000000000 +0200 +++ wineasio-0.7.3-nuendo-fix/asio.c 2008-01-01 18:10:52.000000000 +0200 @@ -642,11 +642,34 @@ WRAP_THISCALL( ASIOError __stdcall, IWineASIOImpl_stop, (LPWINEASIO iface)) { + int i; IWineASIOImpl * This = (IWineASIOImpl*)iface; TRACE("(%p)\n", iface); This->state = Exit; + for (i = 0; i < This->num_inputs; i++) { + if (This->input[i].port == NULL) { + TRACE("(%p) Not registered input port %i\n", This, i); + continue; + } + + if (jack_port_unregister(This->client, This->input[i].port)) { + TRACE("(%p) Unregistered input port %i: '%s' (%p)\n", This, i, This->input[i].port_name, This->input[i].port); + } + } + + for (i = 0; i < This->num_outputs; i++) { + if (This->output[i].port == NULL) { + TRACE("(%p) Not registered output port %i\n", This, i); + continue; + } + + if (jack_port_unregister(This->client, This->output[i].port)) { + TRACE("(%p) Unregistered output port %i: '%s' (%p)\n", This, i, This->output[i].port_name, This->output[i].port); + } + } + if (jack_deactivate(This->client)) { WARN("couldn't deactivate client\n");