diff --git a/geocoder.module b/geocoder.module
index 02cf3d8..15bd612 100644
--- a/geocoder.module
+++ b/geocoder.module
@@ -251,6 +251,10 @@ function geocoder_widget_parse_field($item, $type) {
     case 'addressfield':
       $return = geocoder_widget_parse_addressfield($item);
       break;
+    case 'image':
+    case 'file':
+      $return = $item['fid'];
+      break;
     default:
       $return = $item['value'];
   }
diff --git a/plugins/geocoder_handler/exif.inc b/plugins/geocoder_handler/exif.inc
index 5a161df..9f064d6 100644
--- a/plugins/geocoder_handler/exif.inc
+++ b/plugins/geocoder_handler/exif.inc
@@ -24,10 +24,8 @@ function geocoder_exif($filepath) {
 }
 
 function geocoder_exif_field($field, $field_item) {
-	if ($field['type'] == 'file' || $field['type'] == 'image') {
-	  $file = file_load($field_item['fid']);
-	  return geocoder_exif($file->uri);
-  }
+  $file = file_load($field_item['value']);
+  return geocoder_exif($file->uri);
 }
 
 function geocoder_exif_from($dir, $data) {
