Extracting a program?

Hello everybody! Been a while since I've been on or messed with my Arduino thanks to this thing called "life's obligations"

Anyhow I'm just curious about this: let's say I have an Arduino with an uploaded program but I don't have the original sketch file, is there any way to extract the uploaded program into a new sketch file so that it can be edited and modified?

I'm only curious. If the answer is 'No' then that's fine I'm not losing any special programs in particular.

http://forum.arduino.cc/index.php/topic,6150.0.html