Hi Denis, On 19/05/2011 18:11, Denis Kenzior wrote: > Hi Guillaume, > > On 05/19/2011 08:03 AM, Guillaume Zajac wrote: >> --- >> src/emulator.c | 4 ++++ >> 1 files changed, 4 insertions(+), 0 deletions(-) >> >> diff --git a/src/emulator.c b/src/emulator.c >> index c17b901..251bed8 100644 >> --- a/src/emulator.c >> +++ b/src/emulator.c >> @@ -219,15 +219,19 @@ static void dun_ath_cb(GAtServer *server, GAtServerRequestType type, >> if (val != 0) >> goto error; >> >> + g_at_server_suspend(em->server); >> g_at_ppp_unref(em->ppp); >> em->ppp = NULL; >> + g_at_server_resume(em->server); >> >> g_at_server_send_final(server, G_AT_SERVER_RESULT_OK); >> break; >> >> case G_AT_SERVER_REQUEST_TYPE_COMMAND_ONLY: >> + g_at_server_suspend(em->server); >> g_at_ppp_unref(em->ppp); >> em->ppp = NULL; >> + g_at_server_resume(em->server); >> >> g_at_server_send_final(server, G_AT_SERVER_RESULT_OK); >> break; > This really sounds wrong. I suggest that we not set the disconnect > function in GAtPPP when unrefing if GAtPPP is currently suspended. As it is bound to the escape sequence implementation and ATO0 CB, I have included it into the v6 of escape sequence implementation. Kind regards, Guillaume