EM408 problem

Hello guys
I have an EM408 GPS board and i have to make it work quickly for school project

I had made this work in the past… Now i receive nothing at all
The wiring is correct… Its the same i had in the past.
ENABLE 3.3 V
POWER 3.3 V
Ground to ground… Rx, tx, everything is proper 100%

The code i used in the past and worked is this:

#include <SoftwareSerial.h>
SoftwareSerial GPS = SoftwareSerial(2,3);  //rx,tx
void setup()
{
  GPS.begin(4800);
  Serial.begin(9600);
}

void loop()
{
  //Serial.print(GPS.read(), BYTE);
  Serial.write(byte(GPS.read()));  //as of Arduino 1.0
}

I have also played with another code which is this:

#include <SoftwareSerial.h>
SoftwareSerial GPS = SoftwareSerial(2,3);  //rx,tx
void setup()
{
  GPS.begin(4800);
  Serial.begin(9600);
}

void loop()
{
  byte a;
  if (GPS.available()>0){
    a=GPS.read();
    Serial.write(a);}
}

And i receive nothing at all. Yes, i have access to clear sky…
By the way, it is the same hardware device, the same gps which i had in the past and the code worked back then.

The only thing changed is the arduino IDE. BEfore i had the 1 version, but it was in a zip file and you extracted everything to your pc.
Now i downloaded an exaecutable and installed the IDE

Any help guys? I have a limited amount to finish my school project.
Thanks!

UPDATE:
I receive this character “ÿ” when not checking if serial.available
that is because read() does not wait for a byte to be available, it just returns -1 if there is no byte available; converted as an unsigned byte that becomes 255.

In ISO-8859-1, which is the encoding that my serial monitor is using, 255 translates to ÿ.

When i use serial.available() i get nothing…

#include <SoftwareSerial.h>
SoftwareSerial GPS = SoftwareSerial(2,3);  //rx,tx
void setup()
{
  GPS.begin(4800);
  Serial.begin(9600);
}

void loop()
{
    if (GPS.available()) {
        Serial.write(byte(GPS.read()));  //as of Arduino 1.0
    }
}

I had made this work in the past... Now i receive nothing at all The wiring is correct... Its the same i had in the past. ENABLE 3.3 V POWER 3.3 V Ground to ground.... Rx, tx, everything is proper 100%

Post a (sharp) photo of this setup where all wiring is visible.

From the datasheet:

RX: This is the main receive channel for receiving software commands to the engine board from SiRfDemo software or from user-written software. (NOTE: When not in use this pin must be kept “HIGH” for operation. From Vcc connect a 470 Ohm resistor in series with a 3.2v Zener diode to Ground. Then, connect the Rx input to Zener’s cathode to pull the input “HIGH”.)

Did you do that? Do you use a level converter or is your Arduino running on 3V3?