Even if the GPS Altitude was exactly correct, and ignoring the difference between QNH and Standard (1013.25/29.92), at F/L 390 a temperature difference of 12.77 degrees from ISA (upon which your Altimeter is calibrated) would make a 2000 foot difference.
Can the original poster recall what the temperature was?
A very good discussion regarding GPS et al, sometimes thread creep can become very interesting.
Regards,
Old Smokey