diff --git a/core/modules/file/file.module b/core/modules/file/file.module
index d2f6f76..c7558a3 100644
--- a/core/modules/file/file.module
+++ b/core/modules/file/file.module
@@ -7,6 +7,7 @@
 
 use Drupal\entity\EntityFieldQuery;
 use Drupal\Core\File\File;
+use Drupal\Core\Template\Attribute;
 use Symfony\Component\HttpFoundation\JsonResponse;
 
 // Load all Field module hooks for File.
@@ -769,6 +770,38 @@ function theme_file_link($variables) {
 }
 
 /**
+ * Preprocess variables for a link to a file.
+ */
+function template_preprocess_file_link(&$variables) {
+  $file = $variables['file'];
+  $icon_directory = $variables['icon_directory'];
+
+  $url = file_create_url($file->uri);
+  // theme_file_icon() requires a file entity, make sure it gets one.
+  $variables['icon'] = theme('file_icon', array('file' => ($file instanceof File) ? $file : file_load($file->fid), 'icon_directory' => $icon_directory));
+
+  // Set options as per anchor format described at
+  // http://microformats.org/wiki/file-format-examples
+  $options = array(
+    'attributes' => array(
+      'type' => $file->filemime . '; length=' . $file->filesize,
+    ),
+  );
+
+  // Use the description as the link text if available.
+  if (empty($file->description)) {
+    $link_text = $file->filename;
+  }
+  else {
+    $link_text = $file->description;
+    $options['attributes']['title'] = check_plain($file->filename);
+  }
+
+  $variables['link'] = l($link_text, $url, $options);
+  $variables['attributes'] = new Attribute(array('class' => array('file')));
+}
+
+/**
  * Returns HTML for an image with an appropriate icon for the given file.
  *
  * @param $variables
diff --git a/core/themes/stark/templates/file/file-link.html.twig b/core/themes/stark/templates/file/file-link.html.twig
new file mode 100644
index 0000000..8ec830a
--- /dev/null
+++ b/core/themes/stark/templates/file/file-link.html.twig
@@ -0,0 +1,16 @@
+{#
+/**
+ * Default theme implementation for a link to a file.
+ *
+ * Available variables:
+ * - attributes:  An associative array containing attributes of an element.
+ * - icon: A icon themed by file-icon.html.twig
+ * - link: A rendered hyperlink.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_file_link()
+ *
+ * @ingroup themeable
+ */
+#}
+<span class="{{ attributes.class }}" {{- attributes }}>{{ icon }} {{ link }}</span>
