diff --git a/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php b/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php
index 14a2960..1dbe4bb 100644
--- a/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php
@@ -112,7 +112,7 @@ public function form(EntityInterface $entity, $langcode, array $items, array &$f
       $delta = isset($get_delta) ? $get_delta : 0;
       $element = array(
         '#title' => check_plain($instance['label']),
-        '#description' => field_filter_xss($instance['description']),
+        '#description' => field_filter_xss(token_replace($instance['description'])),
       );
       $element = $this->formSingleElement($entity, $items, $delta, $langcode, $element, $form, $form_state);
 
@@ -203,7 +203,7 @@ protected function formMultipleElements(EntityInterface $entity, array $items, $
     $wrapper_id = drupal_html_id($id_prefix . '-add-more-wrapper');
 
     $title = check_plain($instance['label']);
-    $description = field_filter_xss($instance['description']);
+    $description = field_filter_xss(token_replace($instance['description']));
 
     $elements = array();
 
diff --git a/core/modules/field/lib/Drupal/field/Tests/FormTest.php b/core/modules/field/lib/Drupal/field/Tests/FormTest.php
index 1cc5616..b11638f 100644
--- a/core/modules/field/lib/Drupal/field/Tests/FormTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/FormTest.php
@@ -38,7 +38,7 @@ function setUp() {
       'entity_type' => 'test_entity',
       'bundle' => 'test_bundle',
       'label' => $this->randomName() . '_label',
-      'description' => $this->randomName() . '_description',
+      'description' => '[site:name]_description',
       'weight' => mt_rand(0, 127),
       'settings' => array(
         'test_instance_setting' => $this->randomName(),
@@ -63,6 +63,10 @@ function testFieldFormSingle() {
 
     // Display creation form.
     $this->drupalGet('test-entity/add/test_bundle');
+
+    // Create token value expected for description.
+    $token_description = check_plain(variable_get('site_name', 'Drupal')) . '_description';
+    $this->assertText($token_description, 'Token replacement for description is displayed');
     $this->assertFieldByName("{$this->field_name}[$langcode][0][value]", '', 'Widget is displayed');
     $this->assertNoField("{$this->field_name}[$langcode][1][value]", 'No extraneous widget is displayed');
     // TODO : check that the widget is populated with default value ?
diff --git a/core/modules/field_ui/field_ui.admin.inc b/core/modules/field_ui/field_ui.admin.inc
index 924a85b..6f030f9 100644
--- a/core/modules/field_ui/field_ui.admin.inc
+++ b/core/modules/field_ui/field_ui.admin.inc
@@ -1908,7 +1908,7 @@ function field_ui_field_edit_form($form, &$form_state, $instance) {
     '#title' => t('Help text'),
     '#default_value' => !empty($instance['description']) ? $instance['description'] : '',
     '#rows' => 5,
-    '#description' => t('Instructions to present to the user below this field on the editing form.<br />Allowed HTML tags: @tags', array('@tags' => _field_filter_xss_display_allowed_tags())),
+    '#description' => t('Instructions to present to the user below this field on the editing form.<br />Allowed HTML tags: @tags', array('@tags' => _field_filter_xss_display_allowed_tags())) . '<br />' . t('This field supports tokens.'),
     '#weight' => -10,
   );
 
diff --git a/core/modules/image/image.field.inc b/core/modules/image/image.field.inc
index 09b07eb..da7f3ee 100644
--- a/core/modules/image/image.field.inc
+++ b/core/modules/image/image.field.inc
@@ -337,7 +337,7 @@ function image_field_widget_form(&$form, &$form_state, $field, $instance, $langc
   if ($field['cardinality'] == 1) {
     // If there's only one field, return it as delta 0.
     if (empty($elements[0]['#default_value']['fid'])) {
-      $elements[0]['#description'] = theme('file_upload_help', array('description' => $instance['description'], 'upload_validators' => $elements[0]['#upload_validators']));
+      $elements[0]['#description'] = theme('file_upload_help', array('description' => token_replace($instance['description']), 'upload_validators' => $elements[0]['#upload_validators']));
     }
   }
   else {
diff --git a/core/modules/image/lib/Drupal/image/Tests/ImageFieldDisplayTest.php b/core/modules/image/lib/Drupal/image/Tests/ImageFieldDisplayTest.php
index c6ac2d8..c07acf6 100644
--- a/core/modules/image/lib/Drupal/image/Tests/ImageFieldDisplayTest.php
+++ b/core/modules/image/lib/Drupal/image/Tests/ImageFieldDisplayTest.php
@@ -134,6 +134,7 @@ function testImageFieldSettings() {
       'max_resolution' => '100x100',
       'min_resolution' => '10x10',
       'title_field' => 1,
+      'description' => '[site:name]_description',
     );
     $widget_settings = array(
       'preview_image_style' => 'medium',
diff --git a/core/modules/image/lib/Drupal/image/Tests/ImageFieldTestBase.php b/core/modules/image/lib/Drupal/image/Tests/ImageFieldTestBase.php
index e78a364..d9de6ed 100644
--- a/core/modules/image/lib/Drupal/image/Tests/ImageFieldTestBase.php
+++ b/core/modules/image/lib/Drupal/image/Tests/ImageFieldTestBase.php
@@ -86,6 +86,7 @@ function createImageField($name, $type_name, $field_settings = array(), $instanc
       'label' => $name,
       'bundle' => $type_name,
       'required' => !empty($instance_settings['required']),
+      'description' => !empty($instance_settings['description']) ? $instance_settings['description'] : '',
       'settings' => array(),
       'widget' => array(
         'type' => 'image_image',
