diff --git a/drush/views.drush.inc b/drush/views.drush.inc
index f8d76e8..d68ca81 100644
--- a/drush/views.drush.inc
+++ b/drush/views.drush.inc
@@ -220,8 +220,7 @@ function views_revert_view($view) {
     // Revert the view.
     $view->delete();
     // Clear its cache.
-    ctools_include('object-cache');
-    ctools_object_cache_clear('view', $view->name);
+    views_temp_store()->delete($view->name);
     // Give feedback.
     $message = dt("Reverted the view '@viewname'", array('@viewname' => $view->name));
     drush_log($message, 'success');
diff --git a/includes/admin.inc b/includes/admin.inc
index 927c6a7..0f986ac 100644
--- a/includes/admin.inc
+++ b/includes/admin.inc
@@ -6,6 +6,7 @@
  */
 
 use Drupal\Core\Database\Database;
+use Drupal\Core\TempStore\UserTempStore;
 use Drupal\views\View;
 use Drupal\views\Analyzer;
 
@@ -869,7 +870,7 @@ function views_ui_break_lock_confirm($form, &$form_state, $view) {
     $cancel = $_REQUEST['cancel'];
   }
 
-  $account = user_load($view->locked->uid);
+  $account = user_load($view->locked->ownerId);
   return confirm_form($form,
                   t('Are you sure you want to break the lock on view %name?',
                   array('%name' => $view->name)),
@@ -883,7 +884,7 @@ function views_ui_break_lock_confirm($form, &$form_state, $view) {
  * Submit handler to break_lock a view.
  */
 function views_ui_break_lock_confirm_submit(&$form, &$form_state) {
-  ctools_object_cache_clear_all('view', $form_state['view']->name);
+  UserTempStore::clearAll('view', $form_state['view']->name);
   $form_state['redirect'] = 'admin/structure/views/view/' . $form_state['view']->name . '/edit';
   drupal_set_message(t('The lock has been broken and you may now edit this view.'));
 }
@@ -1046,7 +1047,7 @@ function views_ui_edit_form($form, &$form_state, $view, $display_id = NULL) {
     $form['locked'] = array(
       '#theme_wrappers' => array('container'),
       '#attributes' => array('class' => array('view-locked', 'messages', 'warning')),
-      '#markup' => t('This view is being edited by user !user, and is therefore locked from editing by others. This lock is !age old. Click here to <a href="!break">break this lock</a>.', array('!user' => theme('username', array('account' => user_load($view->locked->uid))), '!age' => format_interval(REQUEST_TIME - $view->locked->updated), '!break' => url('admin/structure/views/view/' . $view->name . '/break-lock'))),
+      '#markup' => t('This view is being edited by user !user, and is therefore locked from editing by others. This lock is !age old. Click here to <a href="!break">break this lock</a>.', array('!user' => theme('username', array('account' => user_load($view->locked->ownerId))), '!age' => format_interval(REQUEST_TIME - $view->locked->updated), '!break' => url('admin/structure/views/view/' . $view->name . '/break-lock'))),
     );
   }
   if (isset($view->vid) && $view->vid == 'new') {
@@ -2174,7 +2175,7 @@ function views_ui_edit_view_form_submit($form, &$form_state) {
   cache_invalidate(array('content' => TRUE));
 
   // Remove this view from cache so we can edit it properly.
-  ctools_object_cache_clear('view', $form_state['view']->name);
+  views_temp_store()->delete($form_state['view']->name);
 }
 
 /**
@@ -2182,7 +2183,7 @@ function views_ui_edit_view_form_submit($form, &$form_state) {
  */
 function views_ui_edit_view_form_cancel($form, &$form_state) {
   // Remove this view from cache so edits will be lost.
-  ctools_object_cache_clear('view', $form_state['view']->name);
+  views_temp_store()->delete($form_state['view']->name);
   if (empty($form['view']->vid)) {
     // I seem to have to drupal_goto here because I can't get fapi to
     // honor the redirect target. Not sure what I screwed up here.
diff --git a/views.module b/views.module
index 8dc908f..48b4f1f 100644
--- a/views.module
+++ b/views.module
@@ -10,6 +10,7 @@
  */
 
 use Drupal\Core\Database\Query\AlterableInterface;
+use Drupal\Core\TempStore\UserTempStore;
 use Drupal\views\View;
 
 /**
@@ -20,6 +21,16 @@ function views_api_version() {
 }
 
 /**
+ * Provides a TempStore for editing views.
+ *
+ * @return UserTempStore
+ *   A TempStore object for the 'view' type.
+ */
+function views_temp_store() {
+  return new UserTempStore('view');
+}
+
+/**
  * Implements hook_ctools_exportable_info().
  */
 function views_ctools_exportable_info() {
diff --git a/views_ui.module b/views_ui.module
index 4306ea0..01bc74a 100644
--- a/views_ui.module
+++ b/views_ui.module
@@ -269,15 +269,15 @@ function views_ui_edit_page_title($view) {
  *   someone else is already editing the view.
  */
 function views_ui_cache_load($name) {
-  ctools_include('object-cache');
-  $view = ctools_object_cache_get('view', $name);
+  $views_temp_store = views_temp_store();
+  $view = $views_temp_store->get($name);
   $original_view = views_get_view($name);
 
   if (empty($view)) {
     $view = $original_view;
     if (!empty($view)) {
       // Check to see if someone else is already editing this view.
-      $view->locked = ctools_object_cache_test('view', $view->name);
+      $view->locked = $views_temp_store->isLocked($view->name);
       // Set a flag to indicate that this view is being edited.
       // This flag will be used e.g. to determine whether strings
       // should be localized.
@@ -309,7 +309,6 @@ function views_ui_cache_set(&$view) {
     drupal_set_message(t('Changes cannot be made to a locked view.'), 'error');
     return;
   }
-  ctools_include('object-cache');
   $view->changed = TRUE; // let any future object know that this view has changed.
 
   if (isset($view->current_display)) {
@@ -326,7 +325,7 @@ function views_ui_cache_set(&$view) {
     unset($view->display[$id]->handler);
     unset($view->display[$id]->default_display);
   }
-  ctools_object_cache_set('view', $view->name, $view);
+  views_temp_store()->set($view->name, $view);
 }
 
 
