If you look on github for the library you see this function as

Code:

void MMA8452Q::read()
{
byte rawData[6]; // x/y/z accel register data stored here
readRegisters(OUT_X_MSB, rawData, 6); // Read the six raw data registers into data array
x = ((short)(rawData[0]<<8 | rawData[1])) >> 4;
y = ((short)(rawData[2]<<8 | rawData[3])) >> 4;
z = ((short)(rawData[4]<<8 | rawData[5])) >> 4;
cx = (float) x / (float)(1<<11) * (float)(scale);
cy = (float) y / (float)(1<<11) * (float)(scale);
cz = (float) z / (float)(1<<11) * (float)(scale);
}

If you download the zipfile from the sparkfun site you see this function as:

Code:

void MMA8452Q::read()
{
byte rawData[6]; // x/y/z accel register data stored here
readRegisters(OUT_X_MSB, rawData, 6); // Read the six raw data registers into data array
x = (rawData[0]<<8 | rawData[1]) >> 4;
y = (rawData[2]<<8 | rawData[3]) >> 4;
z = (rawData[4]<<8 | rawData[5]) >> 4;
cx = (float) x / (float)(1<<11) * (float)(scale);
cy = (float) y / (float)(1<<11) * (float)(scale);
cz = (float) z / (float)(1<<11) * (float)(scale);
}

So you can see that the casts to short are missing in the zipfile version. x, y and z are declared as int in the header file.

To the OP, download the library using the link to github on the sparkfun site and replace your current version of the library.