diff --git a/css/views-admin.theme.css b/css/views-admin.theme.css
index 49dd805..be85d6a 100644
--- a/css/views-admin.theme.css
+++ b/css/views-admin.theme.css
@@ -235,6 +235,10 @@ input.form-radio {
   font-weight: bold;
 }
 
+tr.views-ui-list-disabled td {
+  color: #999;
+}
+
 /* @end */
 
 /* @group Messages */
diff --git a/lib/Drupal/views/Plugin/config/listing/ViewListing.php b/lib/Drupal/views/Plugin/config/listing/ViewListing.php
new file mode 100644
index 0000000..bfa7a11
--- /dev/null
+++ b/lib/Drupal/views/Plugin/config/listing/ViewListing.php
@@ -0,0 +1,129 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\views\Plugin\config\listing\ViewListing;
+ */
+
+namespace Drupal\views\Plugin\config\listing;
+
+use Drupal\config\Plugin\ConfigEntityListingBase;
+use Drupal\Core\Annotation\Plugin;
+use Drupal\Core\Annotation\Translation;
+use Drupal\entity\EntityInterface;
+
+/**
+ * Provides a listing of Views.
+ *
+ * @Plugin(
+ *   id = "view",
+ *   entity_type = "view",
+ *   path = "admin/structure/views",
+ *   page_title = @Translation("Views")
+ * )
+ */
+class ViewListing extends ConfigEntityListingBase {
+
+  /**
+   * Overrides Drupal\config\Plugin\ConfigEntityListingBase::getRowData();
+   */
+  public function getRowData(EntityInterface $entity) {
+    $operations = $this->buildActionLinks($entity);
+    $operations['#theme'] = 'links__ctools_dropbutton';
+    return array(
+      'data' => array(
+        'view_name' => theme('views_ui_view_info', array('view' => $entity)),
+        'description' => $entity->description,
+        'tag' => $entity->tag,
+        'path' => implode(', ', _views_ui_get_paths($entity)),
+        'operations' => drupal_render($operations),
+      ),
+      'title' => t('Machine name: ') . $entity->id(),
+      'class' => array($entity->isEnabled() ? 'views-ui-list-enabled' : 'views-ui-list-disabled'),
+    );
+  }
+
+  /**
+   * Overrides Drupal\config\Plugin\ConfigEntityListingBase::getRowData();
+   */
+  public function getHeaderData() {
+    return array(
+      'view_name' => array(
+        'data' => t('View name'),
+        'class' => array('views-ui-name'),
+      ),
+      'description' => array(
+        'data' => t('Description'),
+        'class' => array('views-ui-description'),
+      ),
+      'tag' => array(
+        'data' => t('Tag'),
+        'class' => array('views-ui-tag'),
+      ),
+      'path' => array(
+        'data' => t('Path'),
+        'class' => array('views-ui-path'),
+      ),
+      'actions' => array(
+        'data' => t('Operations'),
+        'class' => array('views-ui-operations'),
+      ),
+    );
+  }
+
+  /**
+   * Implements Drupal\config\Plugin\ConfigEntityListingInterface::actionLinkMappings();
+   */
+  public function actionLinkMappings(EntityInterface $entity) {
+    $path = $this->definition['path'] . '/view/' . $entity->id();
+
+    $mappings['edit'] = array(
+      'title' => t('Edit'),
+      'path' => "$path/edit",
+    );
+    if ($entity->isEnabled()) {
+      $mappings['disable'] = array(
+        'title' => t('Disable'),
+        'ajax' => TRUE,
+        'token' => TRUE,
+        'path' => "$path/disable",
+      );
+    }
+    else {
+      $mappings['enable'] = array(
+        'title' => t('Enable'),
+        'ajax' => TRUE,
+        'token' => TRUE,
+        'path' => "$path/enable",
+      );
+    }
+    // This property doesn't exist yet.
+    if (!empty($entity->overridden)) {
+      $mappings['revert'] = array(
+        'title' => t('Revert'),
+        'path' => "$path/revert",
+      );
+    }
+    else {
+      $mappings['delete'] = array(
+        'title' => t('Delete'),
+        'path' => "$path/delete",
+      );
+    }
+    $mappings['clone'] = array(
+      'title' => t('Clone'),
+      'path' => "$path/clone",
+    );
+    return $mappings;
+  }
+
+  /**
+   * Overrides Drupal\config\Plugin\ConfigEntityListingBase::renderList();
+   */
+  public function renderList() {
+    $list = parent::renderList();
+    $list['#attached']['css'] = views_ui_get_admin_css();
+    return $list;
+  }
+
+}
diff --git a/lib/Drupal/views/Plugin/ctools/export_ui/ViewsUI.php b/lib/Drupal/views/Plugin/ctools/export_ui/ViewsUI.php
index 23cdd7d..e9b84a1 100644
--- a/lib/Drupal/views/Plugin/ctools/export_ui/ViewsUI.php
+++ b/lib/Drupal/views/Plugin/ctools/export_ui/ViewsUI.php
@@ -23,7 +23,7 @@
  *   module = "views",
  *   access = "administer views",
  *   menu = {
- *     "menu_item" = "views",
+ *     "menu_item" = "views2",
  *     "menu_title" = "Views",
  *     "menu_description" = "Manage customized lists of content.",
  *   },
diff --git a/views_ui.module b/views_ui.module
index f502e95..30b7738 100644
--- a/views_ui.module
+++ b/views_ui.module
@@ -790,6 +790,7 @@ function _views_ui_get_paths($view) {
  */
 function _views_ui_get_displays_list($view) {
   $displays = array();
+  $view->initDisplay();
   foreach ($view->display as $display) {
     if (!empty($display->handler->definition['admin'])) {
       $displays[$display->handler->definition['admin']] = TRUE;
