I do not agree..... The solution you are proposing is not coherent. Ive tryed it and it does not last in the long run, some say delay 1000 other delay 3000. Yes its a workaround, but why not adress the source of the problem and stop the restart mechanism once in for all. I propose the Arduino crew comment on this in the GSM examples, so there be no more misunderstandings.
The shield restarts by default. one needs to --->
if((gsmAccess.begin(PINNUMBER, false)==GSM_READY) &
in order to not
restart again. Since gsmAccess.shutdown(); turns off the gsm module, its duple confetti to boot up, and then straight after to restart, which makes the pour Arduino confused. Unless anyone can tell us why this is mandatory?