How to download file by clicking on icon in file module?
I guess the problem is that 'html' in $options is set to FALSE by default, thus stripping the icon html code generated by theme().

I tried modifying a bit the code above and it worked perfectly:

/**
 * Implements theme_file_link().
 */
function yourtheme_file_link($variables) {
  $file = $variables['file'];
  $icon_directory = $variables['icon_directory'];

  $url = file_create_url($file-&gt;uri);
  $icon = theme('file_icon', array('file' =&gt; $file, 'icon_directory' =&gt;     $icon_directory));

  // Set options as per anchor format described at
  // http://microformats.org/wiki/file-format-examples
  $options = array(
    'attributes' =&gt; array(
      'type' =&gt; $file-&gt;filemime . '; length=' . $file-&gt;filesize,
    ),
  );

  // Updating 'html' to TRUE so that the html code to display the icon is     printed
  $options += array(
    'html' =&gt; TRUE,
  );


  // Use the description as the link text if available.
  if (empty($file-&gt;description)) {
    $link_text = $file-&gt;filename;
  }
  else {
    $link_text = $file-&gt;description;
    $options['attributes']['title'] = check_plain($file-&gt;filename);
  }

  return '&lt;span class="file"&gt;' . l($icon, $url, $options) . ' ' .     l($link_text, $url, $options) . '&lt;/span&gt;';
}


Note that I added 3 lines (plus a commented line, 4) to update the value of HTML.