diff --git a/Assets/NewSystemeDeTraces.cs b/Assets/NewSystemeDeTraces.cs
index 56b3f6afb4663e36654d0c989ffc1266102b03da..6f2a5b9f1106d145a3d1a0f2ed504cdbd6daa2e4 100644
--- a/Assets/NewSystemeDeTraces.cs
+++ b/Assets/NewSystemeDeTraces.cs
@@ -393,10 +393,28 @@ public class NewSystemeDeTraces : MonoBehaviour
     {
         NewSystemeDeTracesJSONRoot tracesJson = new NewSystemeDeTracesJSONRoot();
         tracesJson.fluenceId = returnUserIDFLuence_or_UserIDHM();
-        tracesJson.teacherCode = HM_DataController.currentTeacherAccount.teacherCode.ToString();
-        tracesJson.loginCode = HM_DataController.currentChildUser.loginCode.ToString();
-        tracesJson.userID = HM_DataController.currentChildUser.userID.ToString();
-        tracesJson.userIconID = HM_DataController.currentChildUser.userIconID.ToString();
+        if (HM_DataController.currentTeacherAccount != null)
+        {
+            tracesJson.teacherCode = HM_DataController.currentTeacherAccount.teacherCode.ToString();
+
+        }
+        else
+        {
+            tracesJson.teacherCode = "missingHMdataController";
+        }
+        if (HM_DataController.currentChildUser != null)
+        {
+            tracesJson.loginCode = HM_DataController.currentChildUser.loginCode.ToString();
+            tracesJson.userID = HM_DataController.currentChildUser.userID.ToString();
+            tracesJson.userIconID = HM_DataController.currentChildUser.userIconID.ToString();
+        }
+        else
+        {
+            tracesJson.loginCode = "missing";
+            tracesJson.userID = "missing";
+            tracesJson.userIconID = "missing";
+        }
+
         tracesJson.deviceUniqueID = SystemInfo.deviceUniqueIdentifier;
         tracesJson.versionsLuciole = new List<NewSystemeDeTraces_appliVersionLuciole>();
         NewSystemeDeTraces_appliVersionLuciole versionCourante = new NewSystemeDeTraces_appliVersionLuciole();
diff --git a/Assets/mainManager.cs b/Assets/mainManager.cs
index 5cbb24553e6b92d43c0840a56caaa30096a3255b..c3ff8ac24809989f91a7e8e502924f0dffb24fa1 100644
--- a/Assets/mainManager.cs
+++ b/Assets/mainManager.cs
@@ -63,9 +63,9 @@ public class mainManager : MonoBehaviour
         Debug.Log("start");
         resetClasse();
         currentSession = 0;
+        Time.timeScale = 1.0f;
 
 
-       
         // Vérifier si la clé existe dans le dictionnaire
         clefPourSauvegardeUtilisateur = "gm2023";
         if (HM_DataController.currentTeacherAccount != null && HM_DataController.currentChildUser!=null)
@@ -370,10 +370,10 @@ public class mainManager : MonoBehaviour
         else
         {
             // il y a une autre liste d'items dans cette epreuve, on la charge
-            Debug.LogError("reinit with new item");
+            //Debug.LogError("reinit with new item");
             currentItem++;
             i = epreuvesitemsCurrent[currentItem];
-            Debug.Log("i=" + i+ " currentItem="+ currentItem+ " current_step="+ current_step);
+            //Debug.Log("i=" + i+ " currentItem="+ currentItem+ " current_step="+ current_step);
             current_step = -1;
             resetItem();
             playSteps();
@@ -457,6 +457,7 @@ public class mainManager : MonoBehaviour
         }
         OnGoingTapToUnlockCheat = false;
     }
+    private bool audioIsPaused = false;
     private IEnumerator replayButtonPlaySound(AudioClip unCLipSound, Action mafonction)
     {
 
@@ -464,11 +465,20 @@ public class mainManager : MonoBehaviour
         mainAudioSource.clip = unCLipSound;
         mainAudioSource.Play();
 
-        while (!boutonCheatNext && mainAudioSource.isPlaying)
+        while (audioIsPaused || (!boutonCheatNext && mainAudioSource.isPlaying))
         {
-            yield return new WaitForEndOfFrame();
+           
+            if (Time.timeScale != 0)
+            {
+                // Si le Time.timeScale n'est pas zéro et que l'AudioSource est en pause, le reprendre
+                if (audioIsPaused)
+                {
+                    mainAudioSource.UnPause();
+                    audioIsPaused = false;
+                }
+            }
+            yield return null;
         }
-
         if (!boutonCheatNext)
         {
             yield return new WaitForSeconds(0.5f);
@@ -658,12 +668,16 @@ public class mainManager : MonoBehaviour
         }
         else
         {
+            Time.timeScale = 0.0f;
+            audioIsPaused = true;
+            mainAudioSource.Pause();
             newSystemeDeTraces.sendThisUserTracesToHMPlugin(false);
         }
 
     }
     public void clicRetourSessionEnCOurs()
     {
+        Time.timeScale = 1.0f;
         Debug.Log("clicRetourSessionEnCOurs");
         gameObjFin.SetActive(false);
     }