diff -rup geocode/modules/geocode_widget/geocode_widget.module geocode_new/modules/geocode_widget/geocode_widget.module
--- geocode/modules/geocode_widget/geocode_widget.module	2009-02-22 17:00:59.000000000 +1100
+++ modules/geocode_widget/geocode_widget.module	2010-11-17 12:16:25.157552850 +1100
@@ -73,10 +73,12 @@ function geocode_widget_form_validate($f
 
       $values = array();
       foreach (element_children($form[$field]) as $delta) {
-        $input = $form[$field][$delta]['#value'];
-        $type = 'field_geo:'. $geo_field['geo_type'];
-        if ($geo = geocode($info['handler'], $input, $type, $info['options'])) {
-          $values[$delta] = $geo;
+        // If a new file hasn't been uploaded then do nothing.
+        if ($form[$field][$delta]['#default_value']['fid'] != $form[$field][$delta]['#value']['fid']) {
+          $input = $form[$field][$delta]['#value'];
+          if ($geo = geocode($info['handler'], $input, $type, $info['options'])) {
+            $values[$delta] = $geo;
+          }
         }
       }
       if ($values) {
