diff --git a/core/modules/field/modules/telephone/lib/Drupal/telephone/Plugin/field/formatter/TelephoneLinkFormatter.php b/core/modules/field/modules/telephone/lib/Drupal/telephone/Plugin/field/formatter/TelephoneLinkFormatter.php
index 2177274..0926a1e 100644
--- a/core/modules/field/modules/telephone/lib/Drupal/telephone/Plugin/field/formatter/TelephoneLinkFormatter.php
+++ b/core/modules/field/modules/telephone/lib/Drupal/telephone/Plugin/field/formatter/TelephoneLinkFormatter.php
@@ -35,9 +35,8 @@ class TelephoneLinkFormatter extends FormatterBase {
   public function settingsForm(array $form, array &$form_state) {
     $elements['title'] = array(
       '#type' => 'textfield',
-      '#title' => t('The links title to display'),
+      '#title' => t('Title to replace basic numeric telephone number display.'),
       '#default_value' => $this->getSetting('title'),
-      '#description' => t('Leave blank to use the telephone number itself instead.'),
     );
 
     return $elements;
@@ -50,10 +49,10 @@ public function settingsSummary() {
     $settings = $this->getSettings();
 
     if (!empty($settings['title'])) {
-      $summary = t('Link title: @title', array('@title' => $settings['title']));
+      $summary = t('Link using text: @title', array('@title' => $settings['title']));
     }
     else {
-      $summary = t('Telephone number as link title.');
+      $summary = t('Link using provided telephone number.');
     }
 
     return $summary;
@@ -63,11 +62,11 @@ public function settingsSummary() {
    * Implements Drupal\field\Plugin\Type\Formatter\FormatterInterface::prepareView().
    */
   public function prepareView(array $entities, $langcode, array &$items) {
-    foreach ($entities as $id => $entity) {
-      $settings = $this->getSettings();
+    $settings = $this->getSettings();
 
-      foreach ($items[$id] as $delta => &$item) {
-        // If available, set custom link title.
+    foreach ($entities as $id => $entity) {
+      foreach ($items[$id] as &$item) {
+        // If available, set custom link text.
         if (!empty($settings['title'])) {
           $item['title'] = $settings['title'];
         }
@@ -85,18 +84,17 @@ public function prepareView(array $entities, $langcode, array &$items) {
    */
   public function viewElements(EntityInterface $entity, $langcode, array $items) {
     $element = array();
-    $settings = $this->getSettings();
 
     foreach ($items as $delta => $item) {
 
       // Prepend 'tel:' to the telephone number.
-      $link = 'tel:' . $item['value'];
+      $href = 'tel:' . rawurlencode(preg_replace('/\s+/', '', $item['value']));
 
       // Render each element as link.
       $element[$delta] = array(
         '#type' => 'link',
         '#title' => $item['title'],
-        '#href' => $link,
+        '#href' => $href,
         '#options' => array('external' => TRUE),
       );
 
diff --git a/core/modules/field/modules/telephone/lib/Drupal/telephone/Tests/TelephoneFieldTest.php b/core/modules/field/modules/telephone/lib/Drupal/telephone/Tests/TelephoneFieldTest.php
new file mode 100644
index 0000000..e3abec3
--- /dev/null
+++ b/core/modules/field/modules/telephone/lib/Drupal/telephone/Tests/TelephoneFieldTest.php
@@ -0,0 +1,84 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\telephone\TelephoneFieldTest.
+ */
+
+namespace Drupal\telephone\Tests;
+
+use Drupal\simpletest\WebTestBase;
+
+/**
+ * Tests the creation of telephone fields.
+ */
+class TelephoneFieldTest extends WebTestBase {
+  protected $profile = 'standard';
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('telephone');
+
+  protected $instance;
+  protected $web_user;
+
+  public static function getInfo() {
+    return array(
+      'name'  => 'Telephone field',
+      'description'  => "Test the creation of telephone fields.",
+      'group' => 'Field types'
+    );
+  }
+
+  function setUp() {
+    parent::setUp();
+
+    $this->article_creator = $this->drupalCreateUser(array('create article content', 'edit own article content'));
+    $this->drupalLogin($this->article_creator);
+  }
+
+  // Test fields.
+
+  /**
+   * Helper function for testTelephoneField().
+   */
+  function testTelephoneField() {
+    $value = "123456789";
+
+    // Add the telepone field to the article content type.
+    $field = array(
+      'field_name' => 'field_telephone',
+      'type' => 'telephone',
+    );
+    field_create_field($field);
+
+    $instance = array(
+      'field_name' => 'field_telephone',
+      'label' => 'Telephone Number',
+      'entity_type' => 'node',
+      'bundle' => 'article',
+    );
+    field_create_instance($instance);
+
+    entity_get_display('node', 'article', 'default')
+      ->setComponent('field_telephone', array(
+        'type' => 'telephone_link',
+        'weight' => 1,
+      ))
+      ->save();
+
+    // Add the value to the telephone field.
+    $edit = array(
+      "title" => $this->randomName(),
+      "field_telephone[und][0][value]" => $value,
+    );
+
+    $this->drupalPost('node/add/article', $edit, t('Save'));
+
+    $node = $this->drupalGetNodeByTitle($edit['title']);
+    $this->assertRaw('<a href="tel:'. $value .'">', 'A telephone link is provided on the article node page.');
+  }
+}
diff --git a/core/modules/field/modules/telephone/telephone.module b/core/modules/field/modules/telephone/telephone.module
index ff49084..493f7d1 100644
--- a/core/modules/field/modules/telephone/telephone.module
+++ b/core/modules/field/modules/telephone/telephone.module
@@ -22,7 +22,7 @@ function telephone_field_info() {
 /**
  * Implements hook_field_info_alter().
  */
-function telephone_field_info_alter($info) {
+function telephone_field_info_alter(&$info) {
   if (module_exists('text')) {
     $info['telephone']['default_formatter'] = 'text_plain';
   }
