diff --git a/block_api.admin.inc b/block_api.admin.inc
index bcc8c6a..b50ca81 100644
--- a/block_api.admin.inc
+++ b/block_api.admin.inc
@@ -9,9 +9,11 @@
  * Form constructor to create a new block instance.
  */
 function block_api_create_form($form, &$form_state) {
-  $form['admin_title'] = array(
+  $form['info'] = array(
     '#type' => 'textfield',
-    '#title' => t('Administrative block description'),
+    '#title' => t('Block description'),
+    '#maxlength' => 64,
+    '#description' => t('A brief description of your block. Used on the <a href="@overview">Blocks administration page</a>.', array('@overview' => url('admin/structure/block'))),
     '#required' => TRUE,
   );
   $form['delta'] = array(
@@ -19,7 +21,7 @@ function block_api_create_form($form, &$form_state) {
     '#maxlength' => 32,
     '#required' => TRUE,
     '#machine_name' => array(
-      'source' => array('admin_title'),
+      'source' => array('info'),
       'exists' => 'block_api_load',
     ),
   );
@@ -31,7 +33,7 @@ function block_api_create_form($form, &$form_state) {
   );
   foreach (block_api_get_info() as $type => $info) {
     // Add the option.
-    $form['type']['#options'][$type] = $info['title'];
+    $form['type']['#options'][$type] = $info['name'];
     // Add the block type description and entire block info to the about to be
     // expanded sub-element for the option.
     $form['type'][$type]['#description'] = $info['description'];
@@ -100,7 +102,7 @@ function block_api_delete_form($form, &$form_state, $module, $delta) {
   $form['delta'] = array('#type' => 'value', '#value' => $instance->delta);
 
   return confirm_form($form,
-    t('Are you sure you want to delete the block %name?', array('%name' => $instance->admin_title)),
+    t('Are you sure you want to delete the block %name?', array('%name' => $instance->info)),
     'admin/structure/block',
     NULL,
     t('Delete')
@@ -115,7 +117,7 @@ function block_api_delete_form_submit($form, &$form_state) {
 
   block_api_delete($instance->delta);
 
-  drupal_set_message(t('The block %name has been removed.', array('%name' => $instance->admin_title)));
+  drupal_set_message(t('The block %name has been removed.', array('%name' => $instance->info)));
   cache_clear_all();
 
   $form_state['redirect'] = 'admin/structure/block';
diff --git a/block_api.install b/block_api.install
index e8168cb..a941c12 100644
--- a/block_api.install
+++ b/block_api.install
@@ -6,7 +6,7 @@
  */
 
 /**
- * Implements hook_field_schema().
+ * Implements hook_schema().
  */
 function block_api_schema() {
   $schema['block_api'] = array(
@@ -36,8 +36,8 @@ function block_api_schema() {
         'length' => 128,
         'not null' => TRUE,
       ),
-      'admin_title' => array(
-        'description' => 'Administrative block description.',
+      'info' => array(
+        'description' => 'Block description.',
         'type' => 'varchar',
         'length' => 255,
         'not null' => TRUE,
@@ -114,3 +114,13 @@ function block_api_update_7000() {
     'serialize' => TRUE,
   ));
 }
+
+function block_api_update_7001() {
+  db_change_field('block_api', 'admin_title', 'info', array(
+    'description' => 'Block description.',
+    'type' => 'varchar',
+    'length' => 255,
+    'not null' => TRUE,
+    'default' => '',
+  ));
+}
diff --git a/block_api.module b/block_api.module
index 9cf7a3e..89a2b1d 100644
--- a/block_api.module
+++ b/block_api.module
@@ -62,7 +62,7 @@ function block_api_block_info() {
 
     $blocks[$instance->delta]['info'] = t('!type: !title', array(
       '!type' => $block_info[$instance->type]['title'],
-      '!title' => $instance->admin_title,
+      '!title' => $instance->info,
     ));
     // Add any other Block module properties defined by the block type, but
     // exclude all Block API properties.
@@ -100,9 +100,9 @@ function block_api_block_configure($delta) {
   $form['info'] = array(
     '#type' => 'textfield',
     '#title' => t('Block description'),
-    '#default_value' => $instance->admin_title,
+    '#default_value' => $instance->info,
     '#maxlength' => 64,
-    '#description' => t('A brief description of your block. Used on the <a href="@overview">Blocks administration page</a>.', array('@overview' => url('admin/structure/block'))),
+    '#description' => t('A brief description of your block. Used on the <a href="@overview">Blocks administration page</a>.', array('@overview' => url('admin/block'))),
     '#required' => TRUE,
     '#weight' => -19,
   );
@@ -133,7 +133,7 @@ function block_api_block_save($delta, $edit = array()) {
   module_invoke($instance->module, "block_api_{$instance->type}_save", $instance, $edit);
 
   if ($instance->storage == BLOCK_API_STORAGE_DATABASE) {
-    $instance->admin_title = $edit['info'];
+    $instance->info = $edit['info'];
     block_api_save($instance);
   }
 }
@@ -143,17 +143,17 @@ function block_api_block_save($delta, $edit = array()) {
  */
 function block_api_menu() {
   // @todo Find better names for these menu paths and titles.
-  $items['admin/structure/block/add-module-block'] = array(
-    'title' => 'Add module block',
-    'description' => 'Add a new block of a certain type.',
+  $items['admin/block/add-entity'] = array(
+    'title' => 'Add block (entity)',
+    'description' => 'Add a new entity block of a certain type.',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('block_api_create_form'),
     'access arguments' => array('administer blocks'),
     'type' => MENU_LOCAL_ACTION,
     'file' => 'block_api.admin.inc',
   );
-  $items['admin/structure/block/delete-module-block/%/%'] = array(
-    'title' => 'Delete module block',
+  $items['admin/block/delete-entity/%/%'] = array(
+    'title' => 'Delete block (entity)',
     'access arguments' => array('administer blocks'),
     'page callback' => 'drupal_get_form',
     'page arguments' => array('block_api_delete_form', 4, 5),
@@ -164,17 +164,33 @@ function block_api_menu() {
 }
 
 /**
+ * Implements hook_menu_alter().
+ */
+function block_api_menu_alter(&$items) {
+  foreach ($items as $path => $item) {
+    if (substr($path, 0, 22) == 'admin/structure/block/') {
+      $items['admin/block/' . substr($path, 22)] = $item;
+      unset($items[$path]);
+    }
+    else if (substr($path, 0) == 'admin/structure/block') {
+      $items['admin/block'] = $item;
+      unset($items[$path]);
+    }
+  }
+}
+
+/**
  * Implements hook_entity_info().
  */
 function block_api_entity_info() {
   $types['block_api'] = array(
     'label' => t('Block'),
-    'controller class' => 'BlockApiController',
+    'controller class' => 'BlockAPIController',
     'base table' => 'block_api',
     'entity keys' => array(
       'id' => 'delta',
       'bundle' => 'type',
-      'label' => 'admin_title',
+      'label' => 'info',
     ),
     'bundle keys' => array(
       'bundle' => 'type',
@@ -191,7 +207,7 @@ function block_api_entity_info() {
  * This extends the DrupalDefaultEntityController class, adding required
  * special handling for block instances.
  */
-class BlockApiController extends DrupalDefaultEntityController {
+class BlockAPIController extends DrupalDefaultEntityController {
 
   function attachLoad(&$queried_entities, $revision_id = FALSE) {
     foreach ($queried_entities as $delta => $instance) {
@@ -246,7 +262,7 @@ function block_api_save($instance) {
     ->fields(array(
       'module' => $instance->module,
       'type' => $instance->type,
-      'admin_title' => $instance->admin_title,
+      'info' => $instance->info,
       'storage' => $instance->storage,
       'settings' => serialize($instance->settings),
     ))
@@ -320,7 +336,7 @@ function block_api_form_block_admin_display_form_alter(&$form, $form_state) {
     $form['blocks']['block_api_' . $delta]['delete'] = array(
       '#type' => 'link',
       '#title' => t('delete'),
-      '#href' => 'admin/structure/block/delete-module-block/block_api/' . $delta,
+      '#href' => 'admin/block/delete-entity/block_api/' . $delta,
     );
   }
 }
diff --git a/block_api_type/block_api_type.info b/block_api_type/block_api_type.info
index 2b5fc37..4913d56 100644
--- a/block_api_type/block_api_type.info
+++ b/block_api_type/block_api_type.info
@@ -1,4 +1,4 @@
-name = Custom block type
+name = Block API type
 description = Allows to create custom block types.
 core = 7.x
 dependencies[] = block_api
diff --git a/block_api_type/block_api_type.install b/block_api_type/block_api_type.install
index f855112..1f1e53a 100644
--- a/block_api_type/block_api_type.install
+++ b/block_api_type/block_api_type.install
@@ -6,7 +6,7 @@
  */
 
 /**
- * Implements hook_field_schema().
+ * Implements hook_schema().
  */
 function block_api_type_schema() {
   $schema['block_api_type'] = array(
@@ -22,8 +22,8 @@ function block_api_type_schema() {
         'not null' => TRUE,
         'default' => '',
       ),
-      'title' => array(
-        'description' => 'Block type title.',
+      'name' => array(
+        'description' => 'Block type name.',
         'type' => 'varchar',
         'length' => 255,
         'not null' => TRUE,
@@ -41,4 +41,3 @@ function block_api_type_schema() {
   );
   return $schema;
 }
-
diff --git a/block_api_type/block_api_type.module b/block_api_type/block_api_type.module
index 62b2414..18580ff 100644
--- a/block_api_type/block_api_type.module
+++ b/block_api_type/block_api_type.module
@@ -22,39 +22,72 @@ function block_api_type_block_api_info() {
 function block_api_type_entity_info() {
   $types['block_api_type'] = array(
     'label' => t('Block type'),
-    'entity class' => 'Entity',
+    'entity class' => 'BlockType',
     'controller class' => 'EntityAPIController',
     'base table' => 'block_api_type',
     'entity keys' => array(
       'id' => 'type',
       'name' => 'type',
-      'label' => 'title',
+      'label' => 'name',
     ),
+    'access callback' => 'block_api_type_access',
     // @todo 'bundle of' is soon going to be removed; the bundle entity type is
     //   referenced from the entity type instead.
     // @see http://drupal.org/node/977380
     'bundle of' => 'block_api',
     'admin ui' => array(
-      'path' => 'admin/structure/block/types',
+      'path' => 'admin/structure/block-types',
+      'controller class' => 'BlockAPITypeUIController',
     ),
   );
   return $types;
 }
 
 /**
+ * Implements hook_theme().
+ */
+function block_api_type_theme() {
+  return array(
+    'block_api_type_ui_overview_item' => array(
+      'variables' => array('label' => NULL, 'entity_type' => NULL, 'url' => FALSE, 'name' => FALSE, 'description' => FALSE),
+    ),
+  );
+}
+
+/**
+ * Implements hook_permission().
+ */
+function block_api_type_permission() {
+  return array(
+    'administer block types' => array(
+      'title' => t('Administer block types'),
+      // @todo Add a proper description
+      'description' => t(''),
+    ),
+  );
+}
+
+/**
+ * Access callback for the entity API.
+ */
+function block_api_type_access($op, $type = NULL, $account = NULL) {
+  return user_access('administer block types', $account);
+}
+
+/**
  * Implements hook_entity_info_alter().
  */
 function block_api_type_entity_info_alter(&$types) {
   $types['block_api']['fieldable'] = TRUE;
 
   foreach (block_api_type_load_multiple(FALSE) as $name => $type) {
-    $entity_info['block_api']['bundles'][$name] = array(
-      'label' => $type->title,
+    $types['block_api']['bundles'][$name] = array(
+      'label' => $type->name,
       'admin' => array(
-        'path' => 'admin/structure/block/types/manage/%block_api_type',
-        'real path' => 'admin/structure/block/types/manage/' . $name,
-        'bundle argument' => 5,
-        'access arguments' => array('administer blocks'),
+        'path' => 'admin/structure/block-types/manage/%block_api_type',
+        'real path' => 'admin/structure/block-types/manage/' . $name,
+        'bundle argument' => 4,
+        'access callback' => 'block_api_type_access',
       ),
     );
   }
@@ -100,7 +133,7 @@ function block_api_type_save($type) {
 
   $status = db_merge('block_api_type')
     ->fields(array(
-      'title' => $type->title,
+      'name' => $type->name,
       'description' => $type->description,
     ))
     ->key(array(
@@ -119,45 +152,67 @@ function block_api_type_save($type) {
 }
 
 /**
- * Form constructor to add or edit a block type.
+ * Gets an array of all block types, keyed by the type name.
+ *
+ * @param $type_name
+ *   If set, the type with the given name is returned.
+ * @return BlockType[]
+ *   Depending whether $type isset, an array of block types or a single one.
+ */
+function block_api_type_get_types($type_name = NULL) {
+  $types = entity_load_multiple_by_name('block_api_type', isset($type_name) ? array($type_name) : FALSE);
+  return isset($type_name) ? reset($types) : $types;
+}
+
+/**
+ * Generates the block type editing form.
  */
-function block_api_type_form($form, &$form_state, $type) {
-  if (!$type) {
-    $type = (object) array(
-      'type' => NULL,
-      'title' => NULL,
-      'description' => NULL,
-    );
+function block_api_type_form($form, &$form_state, $block_type, $op = 'edit') {
+  if ($op == 'clone') {
+    $block_type->name .= ' (cloned)';
+    $block_type->type = '';
   }
 
-  $form['title'] = array(
+  $form['name'] = array(
+    '#title' => t('Name'),
     '#type' => 'textfield',
-    '#title' => t('Title'),
+    '#default_value' => $block_type->name,
+    '#description' => t('The human-readable name of this block type. This text will be displayed as part of the list on the <em>Add block</em> page. It is recommended that this name begin with a capital letter and contain only letters, numbers, and spaces. This name must be unique.'),
     '#required' => TRUE,
-    '#default_value' => $type->title,
+    '#size' => 30,
   );
+
   $form['type'] = array(
     '#type' => 'machine_name',
-    '#maxlength' => 128,
-    '#required' => TRUE,
+    '#default_value' => $block_type->type,
+    '#maxlength' => 32,
+    '#disabled' => $block_type->isLocked() && $op != 'clone',
     '#machine_name' => array(
-      'source' => array('title'),
-      'exists' => 'block_api_type_load',
+      'exists' => 'block_api_type_get_types',
+      'source' => array('name'),
     ),
-    '#default_value' => $type->type,
-    '#disabled' => !empty($type->type),
+    '#description' => t('A unique machine-readable name for this block type. It must only contain lowercase letters, numbers, and underscores.'),
   );
+
   $form['description'] = array(
-    '#type' => 'textfield',
     '#title' => t('Description'),
-    '#default_value' => $type->description,
+    '#type' => 'textarea',
+    '#default_value' => $block_type->description,
+    '#description' => t('Describe this block type. The text will be displayed on the <em>Add block</em> page.'),
   );
 
   $form['actions'] = array('#type' => 'actions');
   $form['actions']['submit'] = array(
     '#type' => 'submit',
-    '#value' => t('Add block type'),
+    '#value' => t('Save block type'),
   );
+
+  if (!$block_type->isLocked() && $op != 'add' && $op != 'clone') {
+    $form['actions']['delete'] = array(
+      '#type' => 'submit',
+      '#value' => t('Delete block type'),
+    );
+  }
   return $form;
 }
 
@@ -165,9 +220,175 @@ function block_api_type_form($form, &$form_state, $type) {
  * Form submission handler for block_api_type_form().
  */
 function block_api_type_form_submit($form, &$form_state) {
+  $op = isset($form_state['values']['op']) ? $form_state['values']['op'] : '';
+
   form_state_values_clean($form_state);
   $type = (object) $form_state['values'];
 
-  block_api_type_save($type);
+  if ($op == t('Delete block type')) {
+    $form_state['redirect'] = 'admin/structure/block-types/manage/' . str_replace('_', '-', $type->type) . '/delete';
+    return;
+  }
+
+  $status = block_api_type_save($type);
+  $t_args = array('%name' => $type->name);
+
+  if ($status == SAVED_UPDATED) {
+    drupal_set_message(t('The block type %name has been updated.', $t_args));
+  }
+  elseif ($status == SAVED_NEW) {
+    drupal_set_message(t('The block type %name has been added.', $t_args));
+    watchdog('block_api_type', 'Added block type %name.', $t_args, WATCHDOG_NOTICE, l(t('view'), 'admin/structure/block-types'));
+  }
+
+  $form_state['redirect'] = 'admin/structure/block-types';
+  return;
 }
 
+/**
+ * Use a separate class for block types.
+ */
+class BlockType extends Entity {
+  public $type;
+  public $name;
+  public $description;
+
+  /**
+   * Returns whether the block type is locked, thus may not be deleted or
+   * renamed.
+   *
+   * Block types provided in code are automatically treated as locked, as well
+   * as any fixed block type.
+   */
+  public function isLocked() {
+    return isset($this->status) && empty($this->is_new) && (($this->status & ENTITY_IN_CODE) || ($this->status & ENTITY_FIXED));
+  }
+}
+
+/**
+ * Controller class for customizing the default Entity UI.
+ */
+class BlockAPITypeUIController extends EntityDefaultUIController {
+
+  /**
+   * Overrides the default description of the top level menu item.
+   * @see EntityDefaultUIController::hook_menu()
+   */
+  function hook_menu() {
+    $items = parent::hook_menu();
+    $items[$this->path]['description'] = 'Manage block types.';
+    return $items;
+  }
+
+  /**
+   * Overrides the default table header values on the block types page.
+   * @see EntityDefaultUIController::overviewTableHeaders()
+   */
+  function overviewTableHeaders($conditions, $rows, $additional_header = array()) {
+    $header = parent::overviewTableHeaders($conditions, $rows, $additional_header);
+    foreach ($header as $key => $data) {
+      if ($data == 'Label') {
+        $header[$key] = 'Name';
+      }
+    }
+    return $header;
+  }
+
+  /**
+   * Overrides the default table row values on the block types page.
+   * @see EntityDefaultUIController::overviewTableHeaders()
+   */
+  function overviewTableRow($conditions, $id, $entity, $additional_cols = array()) {
+    $row = parent::overviewTableRow($conditions, $id, $entity, $additional_cols);
+    foreach ($row as $key => $data) {
+      if (isset($data['data']['#theme']) && $data['data']['#theme'] == 'entity_ui_overview_item') {
+        $row[$key]['data']['#theme'] = 'block_api_type_ui_overview_item';
+        $row[$key]['data']['#name'] = $entity->type;
+        $row[$key]['data']['#description'] = $entity->description;
+      }
+    }
+    return $row;
+  }
+
+  /**
+   * Overrides the default operation form.
+   * @see EntityDefaultUIController::operationForm()
+   */
+  function operationForm($form, &$form_state, $entity, $op) {
+    switch ($op) {
+      case 'revert':
+        $label = entity_label($this->entityType, $entity);
+        $confirm_question = t('Are you sure you want to revert the block type %label?', array('%label' => $label));
+        return confirm_form($form, $confirm_question, $this->path);
+
+      case 'delete':
+        $label = entity_label($this->entityType, $entity);
+        $confirm_question = t('Are you sure you want to delete the block type %label?', array('%label' => $label));
+        return confirm_form($form, $confirm_question, $this->path);
+
+      case 'export':
+        return parent::operationForm($form, $form_state, $entity, $op);
+
+      case 'import':
+        $form = parent::operationForm($form, $form_state, $entity, $op);
+        $form['import']['#description'] = t('Paste an exported block type here.');
+        $form['overwrite']['#description'] = t('If checked, any existing block type with the same identifier will be replaced by the import.');
+        return $form;
+    }
+    drupal_not_found();
+    exit;
+  }
+
+  /**
+   * Overrides the default apply operation.
+   * @see EntityDefaultUIController::applyOperation()
+   */
+  function applyOperation($op, $entity) {
+    $label = entity_label($this->entityType, $entity);
+    $vars = array('%label' => $label);
+    $id = entity_id($this->entityType, $entity);
+    $edit_link = l(t('edit'), $this->path . '/manage/' . $id . '/edit');
+
+    switch ($op) {
+      case 'revert':
+        entity_delete($this->entityType, $id);
+        watchdog($this->entityType, 'Reverted block type %label to the defaults.', $vars, WATCHDOG_NOTICE, $edit_link);
+        return t('Reverted block type %label to the defaults.', $vars);
+
+      case 'delete':
+        entity_delete($this->entityType, $id);
+        watchdog($this->entityType, 'Deleted block type %label.', $vars);
+        return t('The block type %label has been deleted.', $vars);
+
+      case 'import':
+        // First check if there is any existing entity with the same ID.
+        $id = entity_id($this->entityType, $entity);
+        $entities = entity_load($this->entityType, array($id));
+        if ($existing_entity = reset($entities)) {
+          // Copy DB id and remove the new indicator to overwrite the DB record.
+          $idkey = $this->entityInfo['entity keys']['id'];
+          $entity->{$idkey} = $existing_entity->{$idkey};
+          unset($entity->is_new);
+        }
+        entity_save($this->entityType, $entity);
+        watchdog($this->entityType, 'Imported block type %label.', $vars);
+        return t('Imported block type %label.', $vars);
+
+      default:
+        return FALSE;
+    }
+  }
+}
+
+/**
+ * Overrides the default name item in the table rows to add the description on
+ * the block types page.
+ * @see entity_ui_overview_item()
+ */
+function theme_block_api_type_ui_overview_item($variables) {
+  $output = theme('entity_ui_overview_item', $variables);
+  if ($variables['description']) {
+    $output .= '<div class="description">' . $variables['description'] . '</div>';
+  }
+  return $output;
+}
diff --git a/tests/block_api.test b/tests/block_api.test
index 3fe87e1..7821f55 100644
--- a/tests/block_api.test
+++ b/tests/block_api.test
@@ -5,7 +5,7 @@
  * Tests for Block API module.
  */
 
-class BlockApiTestCase extends DrupalWebTestCase {
+class BlockAPITestCase extends DrupalWebTestCase {
   function setUp() {
     $modules = func_get_args();
     $modules = (isset($modules[0]) ? $modules[0] : array());
@@ -18,7 +18,7 @@ class BlockApiTestCase extends DrupalWebTestCase {
 /**
  * Tests basic block administration.
  */
-class BlockApiAdministrationWebTestCase extends BlockApiTestCase {
+class BlockAPIAdministrationWebTestCase extends BlockAPITestCase {
   public static function getInfo() {
     return array(
       'name' => 'Administration',
@@ -44,18 +44,18 @@ class BlockApiAdministrationWebTestCase extends BlockApiTestCase {
     // Verify that there is a link to create a block type instance.
     $this->clickLink(t('Add module block'));
     $this->assertUrl('admin/structure/block/add-module-block');
-    $this->assertFieldByName('admin_title');
+    $this->assertFieldByName('info');
 
     // Create a new block type instance.
     $edit = array(
-      'admin_title' => $this->randomString(),
+      'info' => $this->randomString(),
       'delta' => drupal_strtolower($this->randomName()),
       'type' => 'html',
     );
     $this->drupalPost(NULL, $edit, t('Add block'));
     // Verify that we were redirected to the block configuration form.
     $this->assertUrl('admin/structure/block/manage/block_api/' . $edit['delta']);
-    $this->assertFieldByName('info', $edit['admin_title']);
+    $this->assertFieldByName('info', $edit['info']);
 
     // Configure the block type instance.
     $instance = (object) $edit;
@@ -71,9 +71,9 @@ class BlockApiAdministrationWebTestCase extends BlockApiTestCase {
     );
     $this->drupalPost(NULL, $edit, t('Save block'));
     // Verify that the block configuration has been saved.
-    $instance->admin_title = $edit['info'];
+    $instance->info = $edit['info'];
     $this->assertUrl('admin/structure/block');
-    $this->assertRaw(check_plain($instance->admin_title), t('Administrative block description found.'));
+    $this->assertRaw(check_plain($instance->info), t('Administrative block description found.'));
     $this->drupalGet('');
     $this->assertRaw(check_plain($edit['title']), t('Block title found.'));
     $this->assertRaw(check_markup($edit['settings[body][value]'], $edit['settings[body][format]']), t('Block body found.'));
@@ -82,14 +82,14 @@ class BlockApiAdministrationWebTestCase extends BlockApiTestCase {
     $this->drupalGet('admin/structure/block');
     $this->assertLinkByHref('admin/structure/block/delete-module-block/block_api/' . $instance->delta);
     $this->drupalGet('admin/structure/block/delete-module-block/block_api/' . $instance->delta);
-    $this->assertRaw(drupal_placeholder($instance->admin_title), t('Administrative block description found.'));
+    $this->assertRaw(drupal_placeholder($instance->info), t('Administrative block description found.'));
     $this->drupalPost(NULL, array(), t('Delete'));
     // Verify that the block type instance has been deleted.
     $this->assertUrl('admin/structure/block');
     // Deleting a block outputs a message confirming the block deletion, which
     // contains the administrative title, so reload the page.
     $this->drupalGet('admin/structure/block');
-    $this->assertNoRaw(check_plain($instance->admin_title), t('Administrative block description not found.'));
+    $this->assertNoRaw(check_plain($instance->info), t('Administrative block description not found.'));
     $this->drupalGet('');
     $this->assertNoRaw(check_plain($edit['title']), t('Block title not found.'));
   }
@@ -98,7 +98,7 @@ class BlockApiAdministrationWebTestCase extends BlockApiTestCase {
 /**
  * Tests module system integration.
  */
-class BlockApiModuleWebTestCase extends BlockApiTestCase {
+class BlockAPIModuleWebTestCase extends BlockAPITestCase {
   public static function getInfo() {
     return array(
       'name' => 'Module system integration',
@@ -124,7 +124,7 @@ class BlockApiModuleWebTestCase extends BlockApiTestCase {
 
     // Create a new block type instance.
     $edit = array(
-      'admin_title' => $this->randomString(),
+      'info' => $this->randomString(),
       'delta' => drupal_strtolower($this->randomName()),
       'type' => 'html',
     );
