--- rpl/src/gestion_niveaux.c 2013/03/22 10:20:35 1.44 +++ rpl/src/gestion_niveaux.c 2013/03/26 11:05:28 1.45 @@ -218,9 +218,17 @@ instruction_vers_niveau_inferieur(struct if (((*s_etat_processus).niveau_recursivite == 0) && ((*s_etat_processus) .gel_liste_variables == d_faux)) { - if (retrait_variables_par_niveau(s_etat_processus) == d_erreur) + // Si une routine ATEXIT est enregistrée, on ne détruit pas les + // variables globales pour qu'elles puissent être utilisées depuis + // la routine ATEXIT. + + if (!(((*s_etat_processus).at_exit != NULL) && + ((*s_etat_processus).niveau_courant == 0))) { - return; + if (retrait_variables_par_niveau(s_etat_processus) == d_erreur) + { + return; + } } }