I think that Evgeny is right. Bruker FIDs are time shifted, and if you do not proccess them properly you will get spectra like that as you can see in the following link: http://nmr-analysis.blogspot.com/2008/02/why-arent-bruker-fids-time-corrected.html
I have the impression that you already knew this, because in your source code you are phasing the spectrum taking this into account, but I have not seen the bit to remove the initial points and zero fill the data. This is the simplest procedure to deal with the problem and it is described here: http://www.boc.chem.uu.nl/static/local/prospectnd/dmxdigitalfilters.html