       break;  // try the filename - we break the for loop and skip to next number
     }
     
-    // make sure we remember the just started track to be the new track, in case player is stopped
-    if (curTrack != firstTrackToPlay) {
-      // in case we are on the last track, choose the first track, so we start playback all from the beginning.
-      if (curTrack == numberOfFiles) firstTrackToPlay = 1; else firstTrackToPlay = curTrack;
-      
-      #ifdef DEBUG
-        //Serial.print(F("set ")); Serial.print(firstTrackToPlay); Serial.println(F(" as first track to play"));
-      #endif
-
-      // now store this new first track in the TrackDB
-      #ifdef NFCTRACKDB
+    // make sure we remember the just started track to be the new track, in case player is stopped 
+    // this works only with the NFC TrackDb and not with the NFC NDEF implementation
+    #ifdef NFCTRACKDB
+      if (curTrack != firstTrackToPlay) {
+        // in case we are on the last track, choose the first track, so we start playback all from the beginning.
+        if (curTrack == numberOfFiles) firstTrackToPlay = 1; else firstTrackToPlay = curTrack;
+        
+        // now store this new first track in the TrackDB
         // first create the new trackDb entry:
         setTrackDbEntry();
-        // second store this entry in the TrackDb files
+        // second store this entry in the TrackDb files, plus optional in the albumnfc.tdb file
         if (!writeTrackDbEntry()) {
           issueWarning("trackdb update error", "", false);
         }
-      #endif
-    }
-
+      }
+    #endif
+    
     // play the track on the music maker shield and retrieve the nextTrackToPlay from global variable (it is set by playTrack())
     //        -1  errors trying to play the file (like file not found)
     //         0  success - the file was played

    digitalWrite(warnLedPin, HIGH);
    success = false;
  }
  
  return (success);
}

  #ifdef DEBUG
    Serial.print(F("saving nfc <-> album: "));Serial.println(trackDbEntry);
  #endif

  // FIRST (if set) write the AlbumNFC file  --> ALBUMNFC.TDB
  #ifdef ALBUMNFC
    File file = SD.open(albumNfcFile, FILE_WRITE);
    bytesWritten = file.write(trackDbEntry, sizeof(trackDbEntry));
    file.close();                                      // and make sure everything is clean and save

    // now check if the write was successful - means we wrote the number of bytes of the trackDb entry to the file
    if (bytesWritten == sizeof(albumNfcFile)) {
      #ifdef DEBUG
        Serial.print(F("  ok. "));Serial.print(bytesWritten);Serial.print(F(" byte(s) written to "));Serial.println(albumNfcFile);
      #endif
      success = true;
    } else {
      #ifdef DEBUG
        Serial.print(F("  error writing "));Serial.println(albumNfcFile);
      #endif
      digitalWrite(warnLedPin, HIGH);
      success = false;
    }
  #endif
  
  // SECOND write the TrackDb-File --> e.g. larsrent.txt
  memset(trackDbFile, 0, sizeof(trackDbFile));       // make sure var to hold path to track db file is empty
  strcat(trackDbFile, trackDbDir);                   // add the trackDb Directory to the 
  strcat(trackDbFile, "/");                          // a / 
  strcat(trackDbFile, plrCurrentFolder);             // and the filename
  strcat(trackDbFile, ".txt");                       // plus of course a txt extension
  SD.remove(trackDbFile);                            // we want the file to be empty prior writing directory and track to it, so we remove it
  
  // used in case the albumnfc.tdb file is written first - redeclare file var
  #ifdef ALBUMNFC
    file = SD.open(trackDbFile, FILE_WRITE);
  #endif
  // used in case we only write the TrackDB file - need to initially declare file var
  #ifndef ALBUMNFC
    File file = SD.open(trackDbFile, FILE_WRITE);
  #endif
  bytesWritten = file.write(trackDbEntry, sizeof(trackDbEntry));
  file.close();

  // now check if the write was successful - means we wrote the number of bytes of the trackDb entry to the file
  if (bytesWritten == sizeof(trackDbEntry)) {
    #ifdef DEBUG
      Serial.print(F("  ok. "));Serial.print(bytesWritten);Serial.print(F(" byte(s) written to "));Serial.println(trackDbFile);
    #endif
    success = true;
  } else {
    #ifdef DEBUG
      Serial.print(F("  error writing "));Serial.println(trackDbFile);
