diff -bcr -p1 a/geocoder.widget.inc b/geocoder.widget.inc
*** a/geocoder.widget.inc	2012-07-20 04:34:03.000000000 +0200
--- b/geocoder.widget.inc	2012-08-01 09:45:01.081820500 +0200
*************** function geocoder_widget_get_field_value
*** 204,205 ****
--- 204,221 ----
      
+     // Remove source values that are not valid.
+     if ($source_field_values) {
+       if ($field_info['type'] == 'addressfield') {
+         foreach ($source_field_values as $key => $value) {
+           if (!is_array($value)) {
+             unset($source_field_values[$key]);
+           }
+         }
+       }
+ 
+       // If no valid source values were passed.
+       if (!$source_field_values) {
+         return FALSE;
+       }
+     }
+ 	
      // Get the source values
