--- location.module	2009-07-30 11:29:53.000000000 -0600
+++ location_new.module	2009-12-04 00:18:18.000000000 -0700
@@ -1024,7 +1024,14 @@ function location_save(&$location, $cow 
   }
 
   $changed = array();
-  if (!location_calc_difference($oldloc, $location, $changed)) {
+  if (!location_calc_difference($oldloc, $location, $changed)
+      && ((!empty($location['locpick']['user_latitude'])
+      && !empty($location['locpick']['user_longitude'])
+      && $location['locpick']['user_latitude'] == $location['latitude']
+      && $location['locpick']['user_longitude'] == $location['longitude'])
+      || (empty($location['locpick']['user_latitude'])
+      && empty($location['locpick']['user_longitude'])
+      && $location['source'] != LOCATION_LATLON_USER_SUBMITTED))) {
     // We didn't actually need to save anything.
     if (!empty($location['lid'])) {
       return $location['lid'];
