       // Set them on the next iteration
       currentIteration = (currentIteration == 254 ? 0 : currentIteration + 1);
       currentKills = 0;
+      iterationEnding = false;
+      stopSpawningEnemies = false;
     }
     
     handleEnemyBullets();
     handleBossBullets();
-      
-    playMusic(isBossAlive ? 3 : 2);
-
+
+    if (! iterationEnding) {
+      playMusic(isBossAlive ? 3 : 2);
+    }
   }
 
   stopMusic();

  isBossAlive = false;
  byte spawnedBoss = 0;
  byte currentIteration = 0;

  resetEnemies();
  resetBoss();

    updateStarFieldVals();

    if (handlePlayerBullets()) {
      iterationEnding = true;
      stopSpawningEnemies = true;
      stopMusic();
    }

    if (iterationEnding && boss.dying == 0) {
      delay(100);
      playerWinsScreen();

      // Reset which boss spawns for next iteration
