diff -up nspluginwrapper-0.9.91.5/src/npw-viewer.c.old nspluginwrapper-0.9.91.5/src/npw-viewer.c --- nspluginwrapper-0.9.91.5/src/npw-viewer.c.old 2008-01-14 13:28:57.000000000 +0100 +++ nspluginwrapper-0.9.91.5/src/npw-viewer.c 2008-01-14 13:30:35.000000000 +0100 @@ -3112,6 +3112,12 @@ static GSourceFuncs rpc_event_funcs = { (GSourceDummyMarshal)NULL }; +static void plugin_kill(rpc_connection_t *connection) +{ + D(bug("plugin_kill, connection %p\n",connection)); + gtk_main_quit(); +} + /* ====================================================================== */ /* === Main program === */ @@ -3220,6 +3226,9 @@ static int do_main(int argc, char **argv g_source_set_callback(rpc_source, (GSourceFunc)rpc_dispatch, g_rpc_connection, NULL); g_source_add_poll(rpc_source, &rpc_event_poll_fd); + // Set error handler - stop plugin if there's a connection error + rpc_connection_error_callback_set(g_rpc_connection, plugin_kill); + gtk_main(); D(bug("--- EXIT ---\n"));