'Override RPCServer method for IDLE
Interrupt the MainThread and exit server if link is dropped.'

def handle_error(self, request, client_address):

    global exit_now
    global quitting
    try:
        raise
    except SystemExit:
        raise
    except EOFError:
        exit_now = True
        thread.interrupt_main()
    except:
        erf = sys.__stderr__
        print >>erf, ('\n' + ('-' * 40))
        print >>erf, 'Unhandled    server    exception!'
        print >>erf, ('Thread:    %s' % threading.currentThread().getName())
        print >>erf, 'Client    Address:    ', client_address
        print >>erf, 'Request:    ', repr(request)
        traceback.print_exc(file=erf)
        print >>erf, '\n***    Unrecoverable,    server    exiting!'
        print >>erf, ('-' * 40)
        quitting = True
        thread.interrupt_main()
