texto en vertical tanto en Monitor como en la SD

Buenas!

estoy haciendo un pequeño tracker GPS y cuando miro el codigo recibido me lo escribe en el Monitor Serial en vertical y todo seguido. En el archivo que escribo en la SD me aparece igual.

os dejo el codigo para ver si me podeis echar una mano.

Gracias!

#include <SoftwareSerial.h>
#include <SD.h>
#include <SPI.h>

SoftwareSerial mySerial(10, 11); // RX, TX

#define chipSelect 53
#define ledPin 13

File logfile;

uint8_t parseHex(char c) {
  if (c < '0')
    return 0;
  if (c <= '9')
    return c - '0';
  if (c < 'A')
    return 0;
  if (c <= 'F')
    return (c - 'A')+10;
}

void error(uint8_t errno) {
  while(1) {
    uint8_t i;
    for (i=0; i<errno; i++) {
      digitalWrite(ledPin, HIGH);
      delay(100);
      digitalWrite(ledPin, LOW);
      delay(100);
    }
    for (i=errno; i<10; i++) {
      delay(200);
    }
  }
}


void setup()
{
  // Open serial communications and wait for port to open:
  Serial.begin(4800);
  Serial.println("uBlox Neo 6M");
  pinMode(ledPin, OUTPUT);

  pinMode(SS, OUTPUT);
  if (!SD.begin(chipSelect)) {

    Serial.println("Card init. failed!");
    while (1);
  }
  char filename[15];
  strcpy(filename, "GPSLOG00.CSV");
  for (uint8_t i = 0; i < 100; i++) {
    filename[6] = '0' + i/10;
    filename[7] = '0' + i%10;
 
    if (! SD.exists(filename)) {
      break;
    }
  }

  logfile = SD.open(filename, FILE_WRITE);
  if( ! logfile ) {
    Serial.print("Couldnt create "); Serial.println(filename);
    error(3);
  }
  Serial.print("Writing to "); Serial.println(filename);
  
  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  Serial.println("Ready");

}

void loop() // run over and over
{
  //if (mySerial.available())
   // Serial.write(mySerial.read());

char c = mySerial.read();
  if (mySerial.available());
    Serial.print(c);
   
  // Serial.println("Log");
   logfile.println (c);
   logfile.flush();
   Serial.println();

}

Normal. Println, como su nombre indica, envía después un carácter de nueva línea.
Utiliza print a secas.

Gracias!

Ahora el problema es que el codigo NMEA me sale todo seguido....