No I mean that whenever I throw a command to the gsm a counter starts counting. It is cleared when I get the responce. If it counts let's say 20 seconds (less could be a problem due to outgoing sms responce), then this means that the gsm did not answer. Then I clear the counter again and throw the last command for once more. If it timeouts again, then I hardware restart the modem (using power on and reset pin) and then the initialization code starts running. In this way the modem "gets alive" again and when initialization finishes I can then perform my tasks, search for incoming sms, make my calls etc, whatever the application level demands. The problem with this solution is that the modem will be dead for about a minute or so, but this is not really a problem. As I said in a previous post, if you don't erase incoming sms during startup code, then it works fine.