diff --git a/filefield_paths.module b/filefield_paths.module
index 9772113..2b538b8 100644
--- a/filefield_paths.module
+++ b/filefield_paths.module
@@ -431,6 +431,13 @@ function filefield_paths_filefield_paths_process_file($new, &$file, $settings, &
   if ($new) {
     $token_data = array('file' => file_load($file['field']['fid']), 'node' => $node);
 
+    // Merge additional file data.
+    if (isset($file['additional'])) {
+      foreach ($file['additional'] as $key => $value) {
+        $token_data['file']->$key = $value;
+      }
+    }
+
     // Process filename.
     $file['filename']['old'] = $file['field']['filename'];
     $file['filename']['new'] = (($settings['filename']['value']) != '')
diff --git a/modules/file.inc b/modules/file.inc
index 6bed01a..63b57d9 100755
--- a/modules/file.inc
+++ b/modules/file.inc
@@ -51,19 +51,15 @@ function file_filefield_paths_form_submit(&$form_state, &$ffp) {
  */
 function file_filefield_paths_get_fields(&$node, &$ffp) {
   if (is_object($node)) {
-    // TODO: Replace with field_info_fields() when http://drupal.org/node/613754 is fixed.
-    $instances = field_info_instances('node', $node->type);
-    $fields = array();
-    foreach ($instances as $field_name => $instance) {
-      $fields[$field_name] = field_info_field($field_name);
-    }
-
+    $fields = field_info_fields();
     foreach ($fields as $name => $field) {
       if ($field['type'] == 'file' && isset($node->{$field['field_name']}) && is_array($node->{$field['field_name']})) {
-
         foreach ($node->{$field['field_name']} as $language) {
           foreach ($language as $file) {
             $new = !isset($file['uri']) ? TRUE : FALSE;
+            $additional = array(
+              'description' => $file['description'],
+            );
             $file = !isset($file['uri']) ? file_load($file['fid']) : (object) $file;
 
             $ffp['#files'][] = array(
@@ -71,6 +67,7 @@ function file_filefield_paths_get_fields(&$node, &$ffp) {
               'module' => $field['module'],
               'name' => $field['field_name'],
               'new' => ($new || isset($file->new)) ? TRUE : FALSE,
+              'additional' => $additional,
             );
 
             $ffp['#types'][$field['field_name']] = TRUE;
