diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php
index d62fdfff62536d242be8f2669a1aa739acf4d5e8..b3d97718c6bd97aca6003a8bc174e02f350c451a 100644
--- a/inc/parser/xhtml.php
+++ b/inc/parser/xhtml.php
@@ -703,22 +703,13 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
         $link['title']  = $this->_xmlEntities($src);
         list($ext,$mime) = mimetype($src);
         if(substr($mime,0,5) == 'image'){
-             // link only jpeg images
-             // if ($ext != 'jpg' && $ext != 'jpeg') $noLink = TRUE;
              $link['url'] = ml($src,array('id'=>$ID,'cache'=>$cache),($linking=='direct'));
          }elseif($mime == 'application/x-shockwave-flash'){
              // don't link flash movies
              $noLink = TRUE;
          }else{
              // add file icons
-             $link['class'] = 'urlextern';
-             if(@file_exists(DOKU_INC.'lib/images/fileicons/'.$ext.'.png')){
-                 $link['style']='background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$ext.'.png)';
-             }elseif(@file_exists(DOKU_INC.'lib/images/fileicons/'.$ext.'.gif')){
-                 $link['style']='background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$ext.'.gif)';
-             }else{
-                 $link['style']='background-image: url('.DOKU_BASE.'lib/images/fileicons/file.png)';
-             }
+             $link['class'] .= ' mediafile mf_'.$ext;
              $link['url'] = ml($src,array('id'=>$ID,'cache'=>$cache),true);
          }
          $link['name']   = $this->_media ($src, $title, $align, $width, $height, $cache);
@@ -757,14 +748,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
              $noLink = TRUE;
         }else{
              // add file icons
-             $link['class'] = 'urlextern';
-             if(@file_exists(DOKU_INC.'lib/images/fileicons/'. $ext.'.png')){
-                 $link['style']='background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$ext.'.png)';
-             }elseif(@file_exists(DOKU_INC.'lib/images/fileicons/'.$ext.'.gif')){
-                 $link['style']='background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$ext.'.gif)';
-             }else{
-                 $link['style']='background-image: url('.DOKU_BASE.'lib/images/fileicons/file.png)';
-             }
+             $link['class'] .= ' mediafile mf_'.$ext;
          }
 
         //output formatted
diff --git a/lib/exe/css.php b/lib/exe/css.php
index 2fb30999a3c32623c195920d9dbe848d27127144..9874299b04a04d4875e360a26226d0181f1979f8 100644
--- a/lib/exe/css.php
+++ b/lib/exe/css.php
@@ -66,8 +66,9 @@ function css_out(){
     // start output buffering and build the stylesheet
     ob_start();
 
-    // print the default classes for Interwikilinks
+    // print the default classes for interwiki links and file downloads
     css_interwiki();
+    css_filetypes();
 
     // load files
     foreach($files as $file => $location){
@@ -163,7 +164,34 @@ function css_interwiki(){
             echo '}';
         }
     }
+}
+
+/**
+ * Prints classes for file download links
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+function css_filetypes(){
 
+    // default style
+    echo 'a.mediafile {';
+    echo ' background: transparent url('.DOKU_BASE.'lib/images/fileicons/file.png) 0px 1px no-repeat;';
+    echo ' padding-left: 16px;';
+    echo '}';
+
+    // additional styles when icon available
+    $mimes = getMimeTypes();
+    foreach(array_keys($mimes) as $mime){
+        if(@file_exists(DOKU_INC.'lib/images/fileicons/'.$mime.'.png')){
+            echo "a.mf_$mime {";
+            echo '  background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$mime.'.png)';
+            echo '}';
+        }elseif(@file_exists(DOKU_INC.'lib/images/fileicons/'.$mime.'.gif')){
+            echo "a.mf_$mime {";
+            echo '  background-image: url('.DOKU_BASE.'lib/images/fileicons/'.$mime.'.gif)';
+            echo '}';
+        }
+    }
 }
 
 /**