diff --git a/core/modules/block/block.admin.inc b/core/modules/block/block.admin.inc
index aa018da..744e5e7 100644
--- a/core/modules/block/block.admin.inc
+++ b/core/modules/block/block.admin.inc
@@ -285,7 +285,8 @@ function block_admin_configure($form, &$form_state, $module, $delta) {
   $form['settings']['title'] = array(
     '#type' => 'textfield',
     '#title' => t('Block title'),
-    '#maxlength' => 64,
+    '#maxlength' => 255,
+    '#size' => 60,
     '#description' => $block->module == 'block' ? t('The title of the block as shown to the user.') : t('Override the default title for the block. Use <em>!placeholder</em> to display no title, or leave blank to use the default block title.', array('!placeholder' => '&lt;none&gt;')),
     '#default_value' => isset($block->title) ? $block->title : '',
     '#weight' => -19,
diff --git a/core/modules/block/block.install b/core/modules/block/block.install
index 4c5149b..09ba522 100644
--- a/core/modules/block/block.install
+++ b/core/modules/block/block.install
@@ -79,7 +79,7 @@ function block_schema() {
       ),
       'title' => array(
         'type' => 'varchar',
-        'length' => 64,
+        'length' => 255,
         'not null' => TRUE,
         'default' => '',
         'description' => 'Custom title for the block. (Empty string will use block default title, <none> will remove the title, text will cause block to use specified title.)',
@@ -312,6 +312,21 @@ function block_update_8002() {
 }
 
 /**
+ * Increase {block}.title length to 255 characters.
+ */
+function block_update_8003() {
+  db_change_field('block', 'title', 'title', array(
+    'type' => 'varchar',
+    'length' => 255,
+    'not null' => TRUE,
+    'default' => '',
+    'description' => 'Custom title for the block. (Empty string will use block default title, <none> will remove the title, text will cause block to use specified title.)',
+    'translatable' => TRUE,
+    )
+  );
+}
+
+/**
  * @} End of "addtogroup updates-7.x-to-8.x".
  * The next series of updates should start at 9000.
  */
diff --git a/core/modules/system/lib/Drupal/system/Tests/BlockUpgradePathTest.php b/core/modules/system/lib/Drupal/system/Tests/BlockUpgradePathTest.php
new file mode 100644
index 0000000..f1ecfbb
--- /dev/null
+++ b/core/modules/system/lib/Drupal/system/Tests/BlockUpgradePathTest.php
@@ -0,0 +1,59 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\system\Tests\Upgrade\BlockUpgradePathTest.
+ */
+
+namespace Drupal\system\Tests\Upgrade;
+
+/**
+ * Tests upgrading a bare database.
+ *
+ * Loads a bare installation of Drupal 7 and runs the upgrade process on it.
+ */
+class BlockUpgradePathTestCase extends UpgradePathTestCase {
+  public static function getInfo() {
+    return array(
+      'name'  => 'Block upgrade test',
+      'description'  => 'Upgrade tests with block data.',
+      'group' => 'Upgrade path',
+    );
+  }
+
+  public function setUp() {
+    $this->databaseDumpFiles = array(
+      drupal_get_path('module', 'system') . '/tests/upgrade/drupal-7.bare.minimal.database.php.gz',
+    );
+    parent::setUp();
+  }
+
+  /**
+   * Tests block title length after successful upgrade.
+   */
+  public function testBlockUpgradeTitleLength() {
+    $this->assertTrue($this->performUpgrade(), 'The upgrade was completed successfully.');
+
+    // Add a new custom block by filling out the input form on the admin/structure/block/add page.
+    $block_title_1 = $this->randomName(255);
+    $custom_block_1 = array();
+    $custom_block_1['title'] = $block_title_1;
+    $custom_block_1['info'] = $this->randomName(8);
+    $custom_block_1['body[value]'] = $this->randomName(32);
+    $custom_block_1['regions[bartik]'] = 'sidebar_first';
+    $this->drupalPost('admin/structure/block/add', $custom_block_1, t('Save block'));
+    // Confirm that the custom block has been created, and title matches input.
+    $this->drupalGet('');
+    $this->assertText($block_title_1, 'Block with title longer than 64 characters successfully created.');
+
+    // Add a new custom block by filling out the input form on the admin/structure/block/add page.
+    $block_title_2 = $this->randomName(256);
+    $custom_block_2 = array();
+    $custom_block_2['title'] = $block_title_2;
+    $custom_block_2['info'] = $this->randomName(8);
+    $custom_block_2['body[value]'] = $this->randomName(32);
+    $this->drupalPost('admin/structure/block/add', $custom_block_2, t('Save block'));
+    // Confirm that the custom block cannot be created with title longer than max characters.
+    $this->assertText('Block title cannot be longer than 255 characters', 'Block with title longer than 255 characters created unsuccessfully.');
+  }
+}
