Problem with SDL_FreeSurface

SDL_Surface* myNewSurface =

//SDL_FreeSurface(myNewSurface); //<----works fine here
//SDL_FreeSurface(myNewSurface); //<----putting it anywhere after that
blitsurface causes a breakpoint

for reference I’m using visual c++ 2008 express edition and the original surface
is a loaded PNG. I’m not really sure whats going on, but I believe it might have
something to do with the pixels field since that was the only field left that
still had a memory address.