diff --git a/media_webcam.module b/media_webcam.module
index 5922cb5..28933e2 100644
--- a/media_webcam.module
+++ b/media_webcam.module
@@ -153,7 +153,7 @@ function media_webcam_widget_element_process($element, &$form_state, $form) {
     $file->status   = 0;
     $file->filename = $element['#value']['media_webcam_red5'] .'.flv';
     $file->filepath = media_webcam_variable_get('upload_folder') .'/'. $file->filename;
-    $file->uri      = file_field_widget_uri($field, $instance);
+    $file->uri      = 'file://'. $file->filepath;
     $file->filemime = file_get_mimetype($file->filename);
     $file->filesize = filesize($file->filepath);
     $file->status = FILE_STATUS_PERMANENT;
@@ -162,15 +162,18 @@ function media_webcam_widget_element_process($element, &$form_state, $form) {
     // The full path + filename where the video resides.
     // Set the destination path and ensure it exists, creating if necessary.
     $destination = file_field_widget_uri($field, $instance) .'/'. media_webcam_variable_get('file_directory');
-    if (file_prepare_directory($destination, FILE_CREATE_DIRECTORY) && file_move($file, $destination .'/'. $file->filename)) {
+    if (file_prepare_directory($destination, FILE_CREATE_DIRECTORY) && ($file = file_move($file, $destination .'/'. $file->filename))) {
       // Set the other file properties and record the file object.
       file_save($file);
       if ($file->fid) {
         // Set the element value to the new fid.
+        $file->display = $file->description = 0;
         $element['#value'] = $element['#default_value'] = (array)$file;
 
         // Ensure the value is saved to filefield.
         $element['#post'][$element['#field_name']][$element['#delta']][$field_key] = $file->fid;
+        $element['#post'][$element['#field_name']][$element['#delta']]['display'] = 0;
+        $element['#post'][$element['#field_name']][$element['#delta']]['description'] = 0;
 
         // Blank out the red5 app value, since we've moved the file.
         $element['#post'][$element['#field_name']][$element['#delta']]['media_webcam_red5'] = '';
@@ -186,10 +189,13 @@ function media_webcam_widget_element_process($element, &$form_state, $form) {
     $file = media_webcam_save_image($element['#value']['media_webcam_snap'], $form_element, $field, $instance);
     if ($file->fid) {
       // Set the element value to the new fid.
+      $file->display = $file->description = 0;
       $element['#value'] = $element['#default_value'] = (array)$file;
 
       // Ensure the value is saved to filefield.
       $element['#post'][$element['#field_name']][$element['#delta']][$field_key] = $file->fid;
+      $element['#post'][$element['#field_name']][$element['#delta']]['display'] = 0;
+      $element['#post'][$element['#field_name']][$element['#delta']]['description'] = 0;
 
       // Blank out the red5 app value, since we've moved the file.
       $element['#post'][$element['#field_name']][$element['#delta']]['media_webcam_red5'] = '';
@@ -200,6 +206,10 @@ function media_webcam_widget_element_process($element, &$form_state, $form) {
   $element['#attributes']['id'] = $element['#id'] .'-ahah-wrapper';
   $element['#prefix'] = '<div '. drupal_attributes($element['#attributes']) .'>';
   $element['#suffix'] = '</div>';
+  $element['display'] = $element['description'] = array(
+    '#type' => 'value',
+    '#value'=> 0
+  );
   $element[$field_key] = array(
     '#type' => 'value',
     '#value' => isset($element['#default_value']) ? $element['#default_value']['fid'] : '',
