Been over at the ExifTool forum for the past few days working on a fix for the swapped FocusDistanceUpper and FocusDistanceLower tags in the EXIF data caused by a bug in the programming in the EOS 400D / Digital Rebel XTi / Kiss Digital X. My username there (and most places on the web) is Philnick. I'd change it here to Philnick as well, but the board's software doesn't appear to allow changing one's username.
If Upper is less than Lower, Adobe's - and probably everyone else's - programs can't figure out the focus distance. Swapping them back makes Adobe's programs, at least, able to figure that out.
I attach a one-line batch file that tells ExifTool, which is a command-line utility, to look at those values in every file in the currrent folder and every folder under it, and if Upper is smaller than Lower, to swap their contents and rename the original as a safety copy, adding "_original" to the end of the extension (.CR2 will become .CR2_original on the safety backup). I came up with a three-pass routine that Phil Harvey, who wrote ExifTool and runs its discussion forum, boiled down to one very elegant step.
Since ExifTool makes a duplicate of all the files it fixes, you need to have as much free space on the drive as your photo files currently occupy. Once you've checked that the new versions work, you can use Windows Explorer to sort each folder by file type to group the backup files to make it easy to block and delete them to reclaim the space.
If you don't have quite that much free space available, you can work on one branch of your tree at a time, putting SwapFD.bat into the top of a branch and running it there. Once you've deleted the safety backups in one branch to reclaim the space, you can move on to another branch.
ExifTool, which has been called "The Pan Galactic Gargle Blaster" (google it) of metadata utilities, is freeware available here:
http://www.sno.phy.queensu.ca/~phil/exiftool/index.html
These instructions are for Windows, but there's a Mac OS X version there also.
1) Create a folder called ExifTool in your Downloads folder (What? You don't have one? How do you ever find your downloads? Make one right now!)
2) Download the zip file into the ExifTool folder.
3) Unzip it and make a copy of the file named ExifTool (-k).exe.
4) Rename the copy simply ExifTool.exe.
5) Copy ExifTool.exe into your Windows directory.
6) Download the attached batch file, which is called SwapFD.bat, into the ExifTool folder.
7) Make a test copy of a small branch of your photo folder tree and put it
outside your photo folder tree.
7) Copy SwapFD.bat into the topmost folder of that new branch.
😎In Windows Explorer, click (or double-click, depending on your settings) on the copy of SwapFD.bat in the top of that branch.
A command window will open up with the contents of SwapFD.bat displayed. Nothing will appear to happen for a little while, and then the command window will close. That means ExifTool has finished processing all of those files.
9) Have Bridge navigate to that new branch, and you'll see that your photos now show a Shooting Distance in the Metadata panel, information that will also be available inside Adobe Camera Raw and Photoshop to any processes that can use it.
10) If that was successful, you can delete the copied branch and copy SwapFD.bat into the top folder of your photo file tree.
11) Make sure that you have enough free space to let you temporarily double the size of the branch you're working on. If you're working on just a branch, put SwapFD.bat into the top of that branch and run it there. Once you've deleted the safety backups in one branch to reclaim the space, you can move on to another branch. Leave SwapFD in the branches you've fixed so you know which ones you've already fixed.
12) Unless you're working branch by branch, start running SwapFD.bat on your whole photo file tree as you go to bed or go out for the day - it'll take a while.
13) Check that the updated files work properly in Bridge and Photoshop.
14) Delete the files tagged as originals.
15) Once you've fixed all your existing XTi / 400D files, you should create an "incoming" folder for new files and put SwapFD.bat there - and get rid of all other copies in your photo folder tree so you don't start it running by accident. Running it on a new photo shoot should be very quick by comparison to the overnight process for the archive. I just processed a batch of new photos in about a second apiece. Move the processed files out of there as soon as they're processed into a place where you can find them, so the runs you do on each new batch are painlessly fast.
Canon's Digital Photo Professional still won't be able to see the Subject Distance in its lens aberration panel, unfortunately - that I'm still working on.
In the meantime, there's PTLens, a relatively-inexpensive plugin for Photoshop that also does profile-based lens aberration correction (it costs around $25). Apparently, Photoshop CS 5 and Lightroom 3 have the same thing built-in.