-           buffer="$(timeout "$bufferTTL""s" gpspipe -r)"; # Record gpspipe nmea data to $buffer for bufferTTL seconds
-           # Save buffer
-           echo "$buffer" >> "$DIROUT"/"$FILEOUT_NMEA""$debugCounter"
-           vbm "DEBUG:Completed buffer session $debugCounter" 1>&2;
-           # Reset buffer
-           unset buffer
+           buffer="$(timeout "$bufferTTL""s" gpspipe -r)"; # Record gpspipe nmea data to buffer for bufferTTL seconds
+           # Process and save buffers
+           echo "$buffer"                                     > "$DIROUT"/"$FILEOUT_NMEA" & # Save NMEA format
+           echo "$buffer" | gpsbabel -i nmea -f - -o gpx -F - > "$DIROUT"/"$FILEOUT_GPX"  & # Save GPX format
+           echo "$buffer" | gpsbabel -i nmea -f - -o kml -F - > "$DIROUT"/"$FILEOUT_KML"  & # Save KML format
+           vbm "DEBUG:Completed buffer session $debugCounter ." 1>&2;
+           # Reset buffer and filenames
+           unset buffer buffer_GPX buffer_KML FILEOUT_BASENAME FILEOUT_NMEA FILEOUT_GPX FILEOUT_KML;