I'm using a Holux M-241 and whole range of free software under Windows/Cygwin. * Adjusting time: [ExifTool][1] (multi-platform) or [XnView][5] (Windows) * Downloading from device: [BT747][2] (Java, writes to GPX or KML (latter for tracks in Google Earth)) * Tagging the images: [GPSphoto.pl][3] (Perl, so Perl and [ExifTool][4] needed) * Checking: [XnView][5] (Windows: opens Browser-link to [Geohack][6] with coordinates) * Adjusting manually: [Geosetter][7] (Windows: uses ExifTool again) ExifTool has the advantage that it writes about the best approximation of XMP/IPTC/EXIF to the files (and compatibility to file formats, as @gordoco mentions). GPSPhoto is actually quite versatile for tagging/retagging with different time-windows and time-offsets and offers to write some other data with ExifTool while one already is on it. [1]: http://www.sno.phy.queensu.ca/~phil/exiftool/ [2]: http://sourceforge.net/projects/bt747/ [3]: http://sourceforge.net/projects/gps2photo/ [4]: http://www.sno.phy.queensu.ca/~phil/exiftool/ [5]: http://www.xnview.com/ [6]: http://toolserver.org/~geohack/ [7]: http://www.geosetter.de/