diff --git a/docs/views.api.php b/docs/views.api.php
index 5ab4b81..908b7d0 100644
--- a/docs/views.api.php
+++ b/docs/views.api.php
@@ -588,7 +588,7 @@ function hook_views_form_submit($form, &$form_state) {
  * Adding output to the view can be accomplished by placing text on
  * $view->attachment_before and $view->attachment_after.
  */
-function hook_views_pre_view(&$view, &$display_id, &$args) {
+function hook_views_pre_view(view $view, $display_id, &$args) {
   // example code here
 }
 
@@ -599,7 +599,7 @@ function hook_views_pre_view(&$view, &$display_id, &$args) {
  * Adding output to the view can be accomplished by placing text on
  * $view->attachment_before and $view->attachment_after.
  */
-function hook_views_pre_build(&$view) {
+function hook_views_pre_build(view $view) {
   // example code here
 }
 
@@ -610,7 +610,7 @@ function hook_views_pre_build(&$view) {
  * Adding output to the view can be accomplished by placing text on
  * $view->attachment_before and $view->attachment_after.
  */
-function hook_views_post_build(&$view) {
+function hook_views_post_build(view $view) {
   // example code here
 }
 
@@ -621,7 +621,7 @@ function hook_views_post_build(&$view) {
  * Adding output to the view can be accomplished by placing text on
  * $view->attachment_before and $view->attachment_after.
  */
-function hook_views_pre_execute(&$view) {
+function hook_views_pre_execute(view $view) {
   // example code here
 }
 
@@ -634,7 +634,7 @@ function hook_views_pre_execute(&$view) {
  * $view->attachment_before and $view->attachment_after. Altering the
  * content can be achieved by editing the items of $view->result.
  */
-function hook_views_post_execute(&$view) {
+function hook_views_post_execute(view $view) {
   // example code here
 }
 
@@ -649,7 +649,7 @@ function hook_views_post_execute(&$view) {
  *
  * This hook can be utilized by themes.
  */
-function hook_views_pre_render(&$view) {
+function hook_views_pre_render(view $view) {
   // example code here
 }
 
@@ -675,7 +675,7 @@ function hook_views_pre_render(&$view) {
  *
  * This hook can be utilized by themes.
  */
-function hook_views_post_render(&$view, &$output, &$cache) {
+function hook_views_post_render(view $view, &$output, &$cache) {
 
 }
 
@@ -688,7 +688,7 @@ function hook_views_post_render(&$view, &$output, &$cache) {
  * file, if 'path' is unspecified.
  *
  */
-function hook_views_query_alter(&$view, &$query) {
+function hook_views_query_alter(view $view, view_plugin_query $query) {
   // example code here
 }
 
@@ -710,7 +710,7 @@ function hook_views_query_alter(&$view, &$query) {
  *
  * @see theme_table
  */
-function hook_views_preview_info_alter(&$rows, $view) {
+function hook_views_preview_info_alter(&$rows, view $view) {
   // example code here
 }
 
@@ -725,7 +725,7 @@ function hook_views_preview_info_alter(&$rows, $view) {
  * @param $display_id
  *   The current display id which is edited. For example that's 'default' or 'page_1'.
  */
-function hook_views_ui_display_top_links_alter(&$links, $view, $display_id) {
+function hook_views_ui_display_top_links_alter(&$links, view $view, $display_id) {
   // example code here
 }
 
diff --git a/drush/views.drush.inc b/drush/views.drush.inc
index a2c89fb..00fc9a7 100644
--- a/drush/views.drush.inc
+++ b/drush/views.drush.inc
@@ -185,7 +185,7 @@ function views_revert_allviews($views) {
  * Checks on wether or not the view is overridden is handled in views_revert_views_revert()
  * We perform a check here anyway in case someone somehow calls this function on their own...
  */
-function views_revert_view($view) {
+function views_revert_view(view $view) {
   // check anyway just in case
   if ($view->type == t('Overridden')) {
     // Revert the view.
diff --git a/handlers/views_handler_argument.inc b/handlers/views_handler_argument.inc
index e589542..2208153 100644
--- a/handlers/views_handler_argument.inc
+++ b/handlers/views_handler_argument.inc
@@ -648,7 +648,7 @@ class views_handler_argument extends views_handler {
     }
 
     if (!empty($info['method args'])) {
-      return call_user_func_array(array(&$this, $info['method']), $info['method args']);
+      return call_user_func_array(array($this, $info['method']), $info['method args']);
     }
     else {
       return $this->{$info['method']}();
diff --git a/help/get-total-rows.html b/help/get-total-rows.html
index 3e74fd9..4a123d6 100644
--- a/help/get-total-rows.html
+++ b/help/get-total-rows.html
@@ -7,7 +7,7 @@ This code will help you do that.
 
 <pre>
 &lt;?php
-function my_module_views_pre_execute(&$view) {
+function my_module_views_pre_execute(view $view) {
   if ($view->name == 'my_view' && $view->current_display == 'my_display') {
     $view->get_total_rows = TRUE;
   }
diff --git a/includes/admin.inc b/includes/admin.inc
index 742f2f3..01731f2 100644
--- a/includes/admin.inc
+++ b/includes/admin.inc
@@ -84,7 +84,7 @@ function views_ui_check_advanced_help() {
 /**
  * Returns the results of the live preview.
  */
-function views_ui_preview($view, $display_id, $args = array()) {
+function views_ui_preview(view $view, $display_id, $args = array()) {
   // When this function is invoked as a page callback, each Views argument is
   // passed separately.
   if (!is_array($args)) {
@@ -812,8 +812,8 @@ function theme_views_ui_view_info($variables) {
 /**
  * Page to delete a view.
  */
-function views_ui_break_lock_confirm($form, &$form_state, $view) {
-  $form_state['view'] = &$view;
+function views_ui_break_lock_confirm($form, &$form_state, view $view) {
+  $form_state['view'] = $view;
   $form = array();
 
   if (empty($view->locked)) {
@@ -849,7 +849,7 @@ function views_ui_break_lock_confirm_submit(&$form, &$form_state) {
  *
  * This function handles access to the display.
  */
-function views_ui_edit_page_display($view, $display_id) {
+function views_ui_edit_page_display(view $view, $display_id) {
   // Determine the displays available for editing.
   if ($tabs = views_ui_edit_page_display_tabs($view)) {
     // If a display isn't specified, use the first one.
@@ -902,7 +902,7 @@ function views_ui_edit_page($view, $display_id = NULL) {
   return $build;
 }
 
-function views_ui_build_preview($view, $display_id) {
+function views_ui_build_preview(view $view, $display_id) {
   if (isset($_POST['ajax_html_ids'])) {
     unset($_POST['ajax_html_ids']);
   }
@@ -938,7 +938,7 @@ function views_ui_build_preview($view, $display_id) {
  * @todo Rename to views_ui_edit_view_form(). See that function for the "old"
  *   version.
  */
-function views_ui_edit_form($form, &$form_state, $view, $display_id = NULL) {
+function views_ui_edit_form($form, &$form_state, view $view, $display_id = NULL) {
   // Do not allow the form to be cached, because $form_state['view'] can become
   // stale between page requests.
   // @see views_ui_ajax_get_form() for how this affects #ajax.
@@ -1137,7 +1137,7 @@ function views_ui_edit_form($form, &$form_state, $view, $display_id = NULL) {
 /**
  * Provide the preview formulas and the preview output, too.
  */
-function views_ui_preview_form($form, &$form_state, $view, $display_id = 'default') {
+function views_ui_preview_form($form, &$form_state, view $view, $display_id = 'default') {
   $form_state['no_cache'] = TRUE;
   $form_state['view'] = $view;
 
@@ -1190,7 +1190,7 @@ function views_ui_preview_form($form, &$form_state, $view, $display_id = 'defaul
 /**
  * Render the top of the display so it can be updated during ajax operations.
  */
-function views_ui_render_display_top($view, $display_id) {
+function views_ui_render_display_top(view $view, $display_id) {
   $element['#theme_wrappers'] = array('views_container');
   $element['#attributes']['class'] = array('views-display-top');
   $element['#attributes']['id'] = array('views-display-top');
@@ -1421,7 +1421,7 @@ function views_ui_edit_form_submit_delay_destination($form, &$form_state) {
  * having them as secondary local tasks isn't desired. The caller is responsible
  * for setting the active tab's #active property to TRUE.
  */
-function views_ui_edit_page_display_tabs($view) {
+function views_ui_edit_page_display_tabs(view $view) {
   $tabs = array();
 
   // Create a tab for each display.
@@ -1453,7 +1453,7 @@ function views_ui_edit_page_display_tabs($view) {
 /**
  * Controls whether or not the default display should have its own tab on edit.
  */
-function views_ui_show_default_display($view) {
+function views_ui_show_default_display(view $view) {
   // Always show the default display for advanced users who prefer that mode.
   $advanced_mode = variable_get('views_ui_show_master_display', FALSE);
   // For other users, show the default display only if there are no others, and
@@ -1466,7 +1466,7 @@ function views_ui_show_default_display($view) {
 /**
  * Returns a renderable array representing the edit page for one display.
  */
-function views_ui_get_display_tab($view, $display_id) {
+function views_ui_get_display_tab(view $view, $display_id) {
   $build = array();
   $display = $view->display[$display_id];
   // If the plugin doesn't exist, display an error message instead of an edit
@@ -1495,7 +1495,7 @@ function views_ui_get_display_tab($view, $display_id) {
  * @return array
  *   A renderable page build array.
  */
-function views_ui_get_display_tab_details($view, $display) {
+function views_ui_get_display_tab_details(view $view, views_plugin_display $display) {
   $display_title = views_ui_get_display_label($view, $display->id, FALSE);
   $build = array(
     '#theme_wrappers' => array('container'),
@@ -1702,7 +1702,7 @@ function views_ui_get_display_tab_details($view, $display) {
  * This function might be more logical as a method on an object, if a suitable
  * object emerges out of refactoring.
  */
-function views_ui_edit_form_get_build_from_option($id, $option, $view, $display) {
+function views_ui_edit_form_get_build_from_option($id, $option, view $view, views_plugin_display $display) {
   $option_build = array();
   $option_build['#theme'] = 'views_ui_display_tab_setting';
 
@@ -2017,7 +2017,7 @@ function views_ui_import_validate($form, &$form_state) {
     form_set_error('', t('Unable to import view.'));
   }
 
-  $form_state['view'] = &$view;
+  $form_state['view'] = $view;
 }
 
 /**
@@ -2103,7 +2103,7 @@ function views_ui_edit_view_form_delete($form, &$form_state) {
 /**
  * Add information about a section to a display.
  */
-function views_ui_edit_form_get_bucket($type, $view, $display) {
+function views_ui_edit_form_get_bucket($type, view $view, views_plugin_display $display) {
   $build = array(
     '#theme_wrappers' => array('views_ui_display_tab_bucket'),
   );
@@ -2299,7 +2299,7 @@ function views_ui_edit_form_get_bucket($type, $view, $display) {
 /**
  * Regenerate the current tab for AJAX updates.
  */
-function views_ui_regenerate_tab(&$view, &$output, $display_id) {
+function views_ui_regenerate_tab(view $view, &$output, $display_id) {
   if (!$view->set_display('default')) {
     return;
   }
@@ -2481,7 +2481,7 @@ function views_ui_standard_submit($form, &$form_state) {
   elseif ($was_defaulted && !$is_defaulted) {
     // We were using the default display's values, but we're now overriding
     // the default display and saving values specific to this display.
-    $display = &$form_state['view']->display[$form_state['display_id']];
+    $display = $form_state['view']->display[$form_state['display_id']];
     $display->handler->options_override($form, $form_state);
     $display->handler->options_submit($form, $form_state);
   }
@@ -2490,7 +2490,7 @@ function views_ui_standard_submit($form, &$form_state) {
     // to go back to the default display.
     // Overwrite the default display with the current form values, and make
     // the current display use the new default values.
-    $display = &$form_state['view']->display[$form_state['display_id']];
+    $display = $form_state['view']->display[$form_state['display_id']];
     $display->handler->options_override($form, $form_state);
     $display->handler->options_submit($form, $form_state);
   }
@@ -2519,7 +2519,7 @@ function views_ui_standard_cancel($form, &$form_state) {
  * the current display.
  */
 function views_ui_standard_display_dropdown(&$form, &$form_state, $section) {
-  $view = &$form_state['view'];
+  $view = $form_state['view'];
   $display_id = $form_state['display_id'];
   $displays = $view->display;
   $current_display = $view->display[$display_id];
@@ -2582,7 +2582,7 @@ function views_ui_standard_display_dropdown(&$form, &$form_state, $section) {
  *   - current: The number of the current form on the stack.
  *   - total: The total number of forms originally on the stack.
  */
-function views_ui_get_form_progress($view) {
+function views_ui_get_form_progress(view $view) {
   $progress = FALSE;
   if (!empty($view->stack)) {
     $stack = $view->stack;
@@ -2674,7 +2674,7 @@ function views_ui_ajax_forms($key = NULL) {
  * is the same as another. Since the arguments differ slightly
  * we do a lot of spiffy concatenation here.
  */
-function views_ui_build_identifier($key, $view, $display_id, $args) {
+function views_ui_build_identifier($key, view $view, $display_id, $args) {
   $form = views_ui_ajax_forms($key);
   // Automatically remove the single-form cache if it exists and
   // does not match the key.
@@ -2691,13 +2691,13 @@ function views_ui_build_identifier($key, $view, $display_id, $args) {
  * Build up a $form_state object suitable for use with drupal_build_form
  * based on known information about a form.
  */
-function views_ui_build_form_state($js, $key, &$view, $display_id, $args) {
+function views_ui_build_form_state($js, $key, view $view, $display_id, $args) {
   $form = views_ui_ajax_forms($key);
   // Build up form state
   $form_state = array(
     'form_key' => $key,
     'form_id' => $form['form_id'],
-    'view' => &$view,
+    'view' => $view,
     'ajax' => $js,
     'display_id' => $display_id,
     'no_redirect' => TRUE,
@@ -2729,12 +2729,12 @@ function views_ui_build_form_url($form_state) {
  * Add another form to the stack; clicking 'apply' will go to this form
  * rather than closing the ajax popup.
  */
-function views_ui_add_form_to_stack($key, &$view, $display_id, $args, $top = FALSE) {
+function views_ui_add_form_to_stack($key, view $view, $display_id, $args, $top = FALSE) {
   if (empty($view->stack)) {
     $view->stack = array();
   }
 
-  $stack = array(views_ui_build_identifier($key, $view, $display_id, $args), $key, &$view, $display_id, $args);
+  $stack = array(views_ui_build_identifier($key, $view, $display_id, $args), $key, $view, $display_id, $args);
   // If we're being asked to add this form to the bottom of the stack, no
   // special logic is required. Our work is equally easy if we were asked to add
   // to the top of the stack, but there's nothing in it yet.
@@ -2768,7 +2768,7 @@ function views_ui_add_form_to_stack($key, &$view, $display_id, $args, $top = FAL
  * We do this for consistency and to make it easy to chain forms
  * together.
  */
-function views_ui_ajax_form($js, $key, $view, $display_id = '') {
+function views_ui_ajax_form($js, $key, view $view, $display_id = '') {
   // Reset the cache of IDs. Drupal rather aggressively prevents id duplication
   // but this causes it to remember IDs that are no longer even being used.
   if (isset($_POST['ajax_html_ids'])) {
@@ -2872,7 +2872,7 @@ function views_ui_remove_display_form_restore($form, &$form_state) {
  * Form constructor callback to display analysis information on a view
  */
 function views_ui_analyze_view_form($form, &$form_state) {
-  $view = &$form_state['view'];
+  $view = $form_state['view'];
 
   $form['#title'] = t('View analysis');
   $form['#section'] = 'analyze';
@@ -2903,7 +2903,7 @@ function views_ui_analyze_view_form_submit($form, &$form_state) {
  * Form constructor callback to reorder displays on a view
  */
 function views_ui_reorder_displays_form($form, &$form_state) {
-  $view = &$form_state['view'];
+  $view = $form_state['view'];
   $display_id = $form_state['display_id'];
 
   $form['view'] = array('#type' => 'value', '#value' => $view);
@@ -3078,7 +3078,7 @@ function theme_views_ui_reorder_displays_form($vars) {
  * Form builder to edit details of a view.
  */
 function views_ui_edit_details_form($form, &$form_state) {
-  $view = &$form_state['view'];
+  $view = $form_state['view'];
 
   $form['#title'] = t('View name and description');
   $form['#section'] = 'details';
@@ -3131,14 +3131,14 @@ function views_ui_edit_details_form_submit($form, &$form_state) {
  * Form constructor callback to edit display of a view
  */
 function views_ui_edit_display_form($form, &$form_state) {
-  $view = &$form_state['view'];
+  $view = $form_state['view'];
   $display_id = $form_state['display_id'];
   $section = $form_state['section'];
 
   if (!$view->set_display($display_id)) {
     views_ajax_error(t('Invalid display id @display', array('@display' => $display_id)));
   }
-  $display = &$view->display[$display_id];
+  $display = $view->display[$display_id];
 
   // Get form from the handler.
   $form['options'] = array(
@@ -3171,7 +3171,7 @@ function views_ui_edit_display_form($form, &$form_state) {
  * Validate handler for views_ui_edit_display_form
  */
 function views_ui_edit_display_form_validate($form, &$form_state) {
-  $display = &$form_state['view']->display[$form_state['display_id']];
+  $display = $form_state['view']->display[$form_state['display_id']];
   $display->handler->options_validate($form, $form_state);
 
   if (form_get_errors()) {
@@ -3183,7 +3183,7 @@ function views_ui_edit_display_form_validate($form, &$form_state) {
  * Submit handler for views_ui_edit_display_form
  */
 function views_ui_edit_display_form_submit($form, &$form_state) {
-  $display = &$form_state['view']->display[$form_state['display_id']];
+  $display = $form_state['view']->display[$form_state['display_id']];
   $display->handler->options_submit($form, $form_state);
 
   views_ui_cache_set($form_state['view']);
@@ -3195,7 +3195,7 @@ function views_ui_edit_display_form_submit($form, &$form_state) {
  * @TODO: Not currently used. Remove unless we implement an override toggle.
  */
 function views_ui_edit_display_form_override($form, &$form_state) {
-  $display = &$form_state['view']->display[$form_state['display_id']];
+  $display = $form_state['view']->display[$form_state['display_id']];
   $display->handler->options_override($form, $form_state);
 
   views_ui_cache_set($form_state['view']);
@@ -3207,7 +3207,7 @@ function views_ui_edit_display_form_override($form, &$form_state) {
  * Form to config items in the views UI.
  */
 function views_ui_config_type_form($form, &$form_state) {
-  $view = &$form_state['view'];
+  $view = $form_state['view'];
   $display_id = $form_state['display_id'];
   $type = $form_state['type'];
 
@@ -3215,7 +3215,7 @@ function views_ui_config_type_form($form, &$form_state) {
   if (!$view->set_display($display_id)) {
     views_ajax_error(t('Invalid display id @display', array('@display' => $display_id)));
   }
-  $display = &$view->display[$display_id];
+  $display = $view->display[$display_id];
   $form['#title'] = t('Configure @type', array('@type' => $types[$type]['ltitle']));
   $form['#section'] = $display_id . 'config-item';
 
@@ -3244,7 +3244,7 @@ function views_ui_config_type_form($form, &$form_state) {
  */
 function views_ui_config_type_form_submit($form, &$form_state) {
   $types = views_object_types();
-  $display = &$form_state['view']->display[$form_state['display_id']];
+  $display = $form_state['view']->display[$form_state['display_id']];
 
   // Store in cache
   views_ui_cache_set($form_state['view']);
@@ -3254,7 +3254,7 @@ function views_ui_config_type_form_submit($form, &$form_state) {
  * Form to rearrange items in the views UI.
  */
 function views_ui_rearrange_form($form, &$form_state) {
-  $view = &$form_state['view'];
+  $view = $form_state['view'];
   $display_id = $form_state['display_id'];
   $type = $form_state['type'];
 
@@ -3262,7 +3262,7 @@ function views_ui_rearrange_form($form, &$form_state) {
   if (!$view->set_display($display_id)) {
     views_ajax_error(t('Invalid display id @display', array('@display' => $display_id)));
   }
-  $display = &$view->display[$display_id];
+  $display = $view->display[$display_id];
   $form['#title'] = t('Rearrange @type', array('@type' => $types[$type]['ltitle']));
   $form['#section'] = $display_id . 'rearrange-item';
 
@@ -3419,7 +3419,7 @@ function theme_views_ui_expose_filter_form($variables) {
  */
 function views_ui_rearrange_form_submit($form, &$form_state) {
   $types = views_object_types();
-  $display = &$form_state['view']->display[$form_state['display_id']];
+  $display = $form_state['view']->display[$form_state['display_id']];
 
   $old_fields = $display->handler->get_option($types[$form_state['type']]['plural']);
   $new_fields = $order = array();
@@ -3450,7 +3450,7 @@ function views_ui_rearrange_form_submit($form, &$form_state) {
  * Form to rearrange items in the views UI.
  */
 function views_ui_rearrange_filter_form($form, &$form_state) {
-  $view = &$form_state['view'];
+  $view = $form_state['view'];
   $display_id = $form_state['display_id'];
   $type = $form_state['type'];
 
@@ -3458,7 +3458,7 @@ function views_ui_rearrange_filter_form($form, &$form_state) {
   if (!$view->set_display($display_id)) {
     views_ajax_render(t('Invalid display id @display', array('@display' => $display_id)));
   }
-  $display = &$view->display[$display_id];
+  $display = $view->display[$display_id];
   $form['#title'] = check_plain($display->display_title) . ': ';
   $form['#title'] .= t('Rearrange @type', array('@type' => $types[$type]['ltitle']));
   $form['#section'] = $display_id . 'rearrange-item';
@@ -3721,7 +3721,7 @@ function theme_views_ui_rearrange_filter_form(&$vars) {
  */
 function views_ui_rearrange_filter_form_submit($form, &$form_state) {
   $types = views_object_types();
-  $display = &$form_state['view']->display[$form_state['display_id']];
+  $display = $form_state['view']->display[$form_state['display_id']];
   $remember_groups = array();
 
   if (!empty($form_state['view']->form_cache)) {
@@ -3827,7 +3827,7 @@ function views_ui_rearrange_filter_form_submit($form, &$form_state) {
  * Form to add_item items in the views UI.
  */
 function views_ui_add_item_form($form, &$form_state) {
-  $view = &$form_state['view'];
+  $view = $form_state['view'];
   $display_id = $form_state['display_id'];
   $type = $form_state['type'];
 
@@ -3843,7 +3843,7 @@ function views_ui_add_item_form($form, &$form_state) {
   if (!$view->set_display($display_id)) {
     views_ajax_error(t('Invalid display id @display', array('@display' => $display_id)));
   }
-  $display = &$view->display[$display_id];
+  $display = $view->display[$display_id];
 
   $types = views_object_types();
   $ltitle = $types[$type]['ltitle'];
@@ -3994,7 +3994,7 @@ function views_ui_add_item_form_submit($form, &$form_state) {
  * Form to config_item items in the views UI.
  */
 function views_ui_config_item_form($form, &$form_state) {
-  $view = &$form_state['view'];
+  $view = $form_state['view'];
   $display_id = $form_state['display_id'];
   $type = $form_state['type'];
   $id = $form_state['id'];
@@ -4101,7 +4101,7 @@ function views_ui_config_item_form($form, &$form_state) {
 
       // Get form from the handler.
       $handler->options_form($form['options'], $form_state);
-      $form_state['handler'] = &$handler;
+      $form_state['handler'] = $handler;
     }
 
     $name = NULL;
@@ -4237,7 +4237,7 @@ function views_ui_config_item_form_submit($form, &$form_state) {
  * Form to config_item items in the views UI.
  */
 function views_ui_config_item_group_form($type, &$form_state) {
-  $view = &$form_state['view'];
+  $view = $form_state['view'];
   $display_id = $form_state['display_id'];
   $type = $form_state['type'];
   $id = $form_state['id'];
@@ -4269,7 +4269,7 @@ function views_ui_config_item_group_form($type, &$form_state) {
       $form['#title'] = t('Configure group settings for @type %item', array('@type' => $types[$type]['lstitle'], '%item' => $handler->ui_name()));
 
       $handler->groupby_form($form['options'], $form_state);
-      $form_state['handler'] = &$handler;
+      $form_state['handler'] = $handler;
     }
 
     views_ui_standard_form_buttons($form, $form_state, 'views_ui_config_item_group_form');
@@ -4333,7 +4333,7 @@ function views_ui_config_item_form_expose($form, &$form_state) {
  * Form to config_item items in the views UI.
  */
 function views_ui_config_item_extra_form($form, &$form_state) {
-  $view = &$form_state['view'];
+  $view = $form_state['view'];
   $display_id = $form_state['display_id'];
   $type = $form_state['type'];
   $id = $form_state['id'];
@@ -4365,7 +4365,7 @@ function views_ui_config_item_extra_form($form, &$form_state) {
 
       // Get form from the handler.
       $handler->extra_options_form($form['options'], $form_state);
-      $form_state['handler'] = &$handler;
+      $form_state['handler'] = $handler;
     }
 
     views_ui_standard_form_buttons($form, $form_state, 'views_ui_config_item_extra_form');
@@ -4404,7 +4404,7 @@ function views_ui_config_item_extra_form_submit($form, &$form_state) {
  * Form to config_style items in the views UI.
  */
 function views_ui_config_style_form($form, &$form_state) {
-  $view = &$form_state['view'];
+  $view = $form_state['view'];
   $display_id = $form_state['display_id'];
   $type = $form_state['type'];
   $id = $form_state['id'];
@@ -4444,7 +4444,7 @@ function views_ui_config_style_form($form, &$form_state) {
         $plugin->options_form($form['style_options'], $form_state);
       }
 
-      $form_state['handler'] = &$handler;
+      $form_state['handler'] = $handler;
     }
 
     views_ui_standard_form_buttons($form, $form_state, 'views_ui_config_style_form');
@@ -4982,7 +4982,7 @@ function theme_views_ui_style_plugin_table($variables) {
  *
  * @todo Remove this function once editing the display title is possible.
  */
-function views_ui_get_display_label($view, $display_id, $check_changed = TRUE) {
+function views_ui_get_display_label(view $view, $display_id, $check_changed = TRUE) {
   $title = $display_id == 'default' ? t('Master') : $view->display[$display_id]->display_title;
   $title = views_ui_truncate($title, 25);
 
diff --git a/includes/analyze.inc b/includes/analyze.inc
index d48bf77..ee0cf3f 100644
--- a/includes/analyze.inc
+++ b/includes/analyze.inc
@@ -19,7 +19,7 @@
  *   An array of analyze results organized into arrays keyed by 'ok',
  *   'warning' and 'error'.
  */
-function views_analyze_view(&$view) {
+function views_analyze_view(view $view) {
   $view->init_display();
   $messages = module_invoke_all('views_analyze', $view);
 
@@ -32,7 +32,7 @@ function views_analyze_view(&$view) {
  * This is based upon the format of drupal_set_message which uses separate
  * boxes for "ok", "warning" and "error".
  */
-function views_analyze_format_result($view, $messages) {
+function views_analyze_format_result(view $view, $messages) {
   if (empty($messages)) {
     $messages = array(views_ui_analysis(t('View analysis can find nothing to report.'), 'ok'));
   }
@@ -96,7 +96,7 @@ function views_ui_analysis($message, $type = 'error') {
  * There are other analysis tools in core specific sections, such as
  * node.views.inc as well.
  */
-function views_ui_views_analyze($view) {
+function views_ui_views_analyze(view $view) {
   $ret = array();
   // Check for something other than the default display:
   if (count($view->display) < 2) {
diff --git a/includes/handlers.inc b/includes/handlers.inc
index e3b3442..b40210f 100644
--- a/includes/handlers.inc
+++ b/includes/handlers.inc
@@ -91,7 +91,7 @@ function views_get_table_join($table, $base_table) {
     }
 
     if (isset($h['arguments'])) {
-      call_user_func_array(array(&$handler, 'construct'), $h['arguments']);
+      call_user_func_array(array($handler, 'construct'), $h['arguments']);
     }
     else {
       $handler->construct();
@@ -217,7 +217,7 @@ class views_handler extends views_object {
       }
     }
 
-    $this->query = &$view->query;
+    $this->query = $view->query;
   }
 
   function option_definition() {
@@ -384,7 +384,7 @@ class views_handler extends views_object {
    * Provide a form for aggregation settings.
    */
   function groupby_form(&$form, &$form_state) {
-    $view = &$form_state['view'];
+    $view = $form_state['view'];
     $display_id = $form_state['display_id'];
     $types = views_object_types();
     $type = $form_state['type'];
@@ -698,7 +698,7 @@ class views_handler extends views_object {
  */
 class views_many_to_one_helper {
   function views_many_to_one_helper(&$handler) {
-    $this->handler = &$handler;
+    $this->handler = $handler;
   }
 
   static function option_definition(&$options) {
@@ -797,8 +797,8 @@ class views_many_to_one_helper {
 
     // shortcuts
     $options = $this->handler->options;
-    $view = &$this->handler->view;
-    $query = &$this->handler->query;
+    $view = $this->handler->view;
+    $query = $this->handler->query;
 
     if (!empty($options['require_value'])) {
       $join->type = 'INNER';
@@ -1010,7 +1010,7 @@ class views_many_to_one_helper {
  *   - operator: Either 'and' or 'or'
  *   - value: An array of numeric values.
  */
-function views_break_phrase_string($str, &$handler = NULL) {
+function views_break_phrase_string($str, $handler = NULL) {
   if (!$handler) {
     $handler = new stdClass();
   }
@@ -1063,7 +1063,7 @@ function views_break_phrase_string($str, &$handler = NULL) {
  * @return $handler
  *   The new handler object.
  */
-function views_break_phrase($str, &$handler = NULL) {
+function views_break_phrase($str, $handler = NULL) {
   if (!$handler) {
     $handler = new stdClass();
   }
@@ -1513,7 +1513,7 @@ class views_join {
 /**
  * Join handler for relationships that join with a subquery as the left field.
  * eg:
- *  LEFT JOIN node node_term_data ON ([YOUR SUBQUERY HERE]) = node_term_data.nid 
+ *  LEFT JOIN node node_term_data ON ([YOUR SUBQUERY HERE]) = node_term_data.nid
  *
  * join definition
  *   same as views_join class above, except:
@@ -1524,7 +1524,7 @@ class views_join_subquery extends views_join {
     parent::construct($table, $left_table, $left_field, $field, $extra, $type);
     $this->left_query = $this->definition['left_query'];
   }
-  
+
   /**
    * Build the SQL for the join this object represents.
    *
diff --git a/includes/view.inc b/includes/view.inc
index 58694bf..9926903 100644
--- a/includes/view.inc
+++ b/includes/view.inc
@@ -296,13 +296,13 @@ class view extends views_db_object {
         // This assumes that the 'default' handler is always first. It always
         // is. Make sure of it.
         if ($id != 'default') {
-          $this->display[$id]->handler->default_display = &$this->display['default']->handler;
+          $this->display[$id]->handler->default_display = $this->display['default']->handler;
         }
       }
     }
 
     $this->current_display = 'default';
-    $this->display_handler = &$this->display['default']->handler;
+    $this->display_handler = $this->display['default']->handler;
 
     return TRUE;
   }
@@ -372,7 +372,7 @@ class view extends views_db_object {
     }
 
     // Set a shortcut
-    $this->display_handler = &$this->display[$display_id]->handler;
+    $this->display_handler = $this->display[$display_id]->handler;
 
     return TRUE;
   }
@@ -621,7 +621,7 @@ class view extends views_db_object {
     // Iterate through each argument and process.
     foreach ($this->argument as $id => $arg) {
       $position++;
-      $argument = &$this->argument[$id];
+      $argument = $this->argument[$id];
 
       if ($argument->broken()) {
         continue;
@@ -2201,7 +2201,7 @@ class views_db_object {
       $this->display[$id]->handler->init($this, $this->display[$id]);
       // If this is NOT the default display handler, let it know which is
       if ($id != 'default') {
-        $this->display[$id]->handler->default_display = &$this->display['default']->handler;
+        $this->display[$id]->handler->default_display = $this->display['default']->handler;
       }
     }
 
diff --git a/modules/comment.views.inc b/modules/comment.views.inc
index 4717054..288e714 100644
--- a/modules/comment.views.inc
+++ b/modules/comment.views.inc
@@ -586,12 +586,12 @@ function comment_views_plugins() {
  */
 function template_preprocess_views_view_row_comment(&$vars) {
   $options = $vars['options'];
-  $view = &$vars['view'];
-  $plugin = &$view->style_plugin->row_plugin;
+  $view = $vars['view'];
+  $plugin = $view->style_plugin->row_plugin;
   $comment = $plugin->comments[$vars['row']->{$vars['field_alias']}];
   $node = $plugin->nodes[$comment->nid];
   // Put the view on the node so we can retrieve it in the preprocess.
-  $node->view = &$view;
+  $node->view = $view;
 
   $build = comment_view_multiple(array($comment->cid => $comment), $node);
   // If we're displaying the comments without links, remove them from the
diff --git a/modules/node.views.inc b/modules/node.views.inc
index c5026bb..815252c 100644
--- a/modules/node.views.inc
+++ b/modules/node.views.inc
@@ -678,7 +678,7 @@ function node_views_query_substitutions() {
 /**
  * Implements hook_views_analyze().
  */
-function node_views_analyze($view) {
+function node_views_analyze(view $view) {
   $ret = array();
   // Check for something other than the default display:
   if ($view->base_table == 'node') {
diff --git a/modules/taxonomy/views_handler_argument_term_node_tid_depth_modifier.inc b/modules/taxonomy/views_handler_argument_term_node_tid_depth_modifier.inc
index e28b9eb..2c09e9f 100644
--- a/modules/taxonomy/views_handler_argument_term_node_tid_depth_modifier.inc
+++ b/modules/taxonomy/views_handler_argument_term_node_tid_depth_modifier.inc
@@ -45,7 +45,7 @@ class views_handler_argument_term_node_tid_depth_modifier extends views_handler_
         unset($handler);
       }
 
-      $handler = &$this->view->argument[$key];
+      $handler = $this->view->argument[$key];
       if (empty($handler->definition['accept depth modifier'])) {
         continue;
       }
diff --git a/modules/user.views.inc b/modules/user.views.inc
index fe2fd0e..ad2bc20 100644
--- a/modules/user.views.inc
+++ b/modules/user.views.inc
@@ -510,7 +510,7 @@ function user_views_plugins() {
 /**
  * Allow replacement of current userid so we can cache these queries
  */
-function user_views_query_substitutions($view) {
+function user_views_query_substitutions(view $view) {
   global $user;
   return array('***CURRENT_USER***' => intval($user->uid));
 }
diff --git a/plugins/export_ui/views_ui.class.php b/plugins/export_ui/views_ui.class.php
index 73542c9..2b4f346 100644
--- a/plugins/export_ui/views_ui.class.php
+++ b/plugins/export_ui/views_ui.class.php
@@ -161,7 +161,7 @@ class views_ui extends ctools_export_ui {
     );
   }
 
-  function list_filter($form_state, $view) {
+  function list_filter($form_state, view $view) {
     if ($form_state['values']['base'] != 'all' && $form_state['values']['base'] != $view->base_table) {
       return TRUE;
     }
@@ -180,7 +180,7 @@ class views_ui extends ctools_export_ui {
   }
 
 
-  function list_build_row($view, &$form_state, $operations) {
+  function list_build_row(view $view, &$form_state, $operations) {
     if (!empty($view->human_name)) {
       $title = $view->human_name;
     }
@@ -299,7 +299,7 @@ class views_ui extends ctools_export_ui {
 
     $form_state = array(
       'plugin' => $this->plugin,
-      'object' => &$this,
+      'object' => $this,
       'ajax' => $js,
       'item' => $item,
       'op' => 'add',
diff --git a/plugins/views_plugin_access.inc b/plugins/views_plugin_access.inc
index b3fbb29..5d808c2 100644
--- a/plugins/views_plugin_access.inc
+++ b/plugins/views_plugin_access.inc
@@ -15,8 +15,8 @@ class views_plugin_access extends views_plugin {
    *   The display handler.
    */
   function init(&$view, &$display) {
-    $this->view = &$view;
-    $this->display = &$display;
+    $this->view = $view;
+    $this->display = $display;
 
     if (is_object($display->handler)) {
       $options = $display->handler->get_option('access');
diff --git a/plugins/views_plugin_argument_default.inc b/plugins/views_plugin_argument_default.inc
index bc284df..6a3c8b5 100644
--- a/plugins/views_plugin_argument_default.inc
+++ b/plugins/views_plugin_argument_default.inc
@@ -30,7 +30,7 @@ class views_plugin_argument_default extends views_plugin {
    * it is linked to.
    */
   function init(&$view, &$argument, $options) {
-    $this->view = &$view;
+    $this->view = $view;
     $this->argument = &$argument;
 
     $this->convert_options($options);
diff --git a/plugins/views_plugin_argument_default_php.inc b/plugins/views_plugin_argument_default_php.inc
index 699dae7..a5f3562 100644
--- a/plugins/views_plugin_argument_default_php.inc
+++ b/plugins/views_plugin_argument_default_php.inc
@@ -43,8 +43,8 @@ class views_plugin_argument_default_php extends views_plugin_argument_default {
 
   function get_argument() {
     // set up variables to make it easier to reference during the argument.
-    $view = &$this->view;
-    $argument = &$this->argument;
+    $view = $this->view;
+    $argument = $this->argument;
     ob_start();
     $result = eval($this->options['code']);
     ob_end_clean();
diff --git a/plugins/views_plugin_argument_validate.inc b/plugins/views_plugin_argument_validate.inc
index 7071a62..bd80f21 100644
--- a/plugins/views_plugin_argument_validate.inc
+++ b/plugins/views_plugin_argument_validate.inc
@@ -25,8 +25,8 @@ class views_plugin_argument_validate extends views_plugin {
    * it is linked to.
    */
   function init(&$view, &$argument, $options) {
-    $this->view = &$view;
-    $this->argument = &$argument;
+    $this->view = $view;
+    $this->argument = $argument;
 
     $this->convert_options($options);
     $this->unpack_options($this->options, $options);
@@ -99,4 +99,3 @@ class views_plugin_argument_validate extends views_plugin {
 /**
  * @}
  */
-
diff --git a/plugins/views_plugin_argument_validate_php.inc b/plugins/views_plugin_argument_validate_php.inc
index 83308c4..fffa034 100644
--- a/plugins/views_plugin_argument_validate_php.inc
+++ b/plugins/views_plugin_argument_validate_php.inc
@@ -44,8 +44,8 @@ class views_plugin_argument_validate_php extends views_plugin_argument_validate
 
   function validate_argument($argument) {
     // set up variables to make it easier to reference during the argument.
-    $view = &$this->view;
-    $handler = &$this->argument;
+    $view = $this->view;
+    $handler = $this->argument;
 
     ob_start();
     $result = eval($this->options['code']);
@@ -53,4 +53,3 @@ class views_plugin_argument_validate_php extends views_plugin_argument_validate
     return $result;
   }
 }
-
diff --git a/plugins/views_plugin_cache.inc b/plugins/views_plugin_cache.inc
index ceef865..abaea72 100644
--- a/plugins/views_plugin_cache.inc
+++ b/plugins/views_plugin_cache.inc
@@ -25,8 +25,8 @@ class views_plugin_cache extends views_plugin {
    *   The display handler.
    */
   function init(&$view, &$display) {
-    $this->view = &$view;
-    $this->display = &$display;
+    $this->view = $view;
+    $this->display = $display;
 
     if (is_object($display->handler)) {
       $options = $display->handler->get_option('cache');
@@ -52,7 +52,7 @@ class views_plugin_cache extends views_plugin {
    *   The cache type, either 'query', 'result' or 'output'.
    */
    function cache_expire($type) { }
-   
+
    /**
     * Determine expiration time in the cache table of the cache type
     * or CACHE_PERMANENT if item shouldn't be removed automatically from cache.
@@ -172,7 +172,7 @@ class views_plugin_cache extends views_plugin {
    */
   function cache_start() {
     $this->storage['head'] = drupal_add_html_head();
-    $this->storage['css'] = drupal_add_css();  
+    $this->storage['css'] = drupal_add_css();
     $this->storage['js'] = drupal_add_js();
   }
 
@@ -251,9 +251,9 @@ class views_plugin_cache extends views_plugin {
     global $user;
 
     if (!isset($this->_results_key)) {
-      
+
       $build_info = $this->view->build_info;
-      
+
       foreach (array('query', 'count_query') as $index) {
         $query = clone $build_info[$index];
         $query->preExecute();
diff --git a/plugins/views_plugin_display.inc b/plugins/views_plugin_display.inc
index ec4c22c..76c9e42 100644
--- a/plugins/views_plugin_display.inc
+++ b/plugins/views_plugin_display.inc
@@ -39,8 +39,8 @@ class views_plugin_display extends views_plugin {
   var $extender = array();
 
   function init(&$view, &$display, $options = NULL) {
-    $this->view = &$view;
-    $this->display = &$display;
+    $this->view = $view;
+    $this->display = $display;
 
     // Make some modifications:
     if (!isset($options) && isset($display->display_options)) {
@@ -845,7 +845,7 @@ class views_plugin_display extends views_plugin {
           }
 
           $handler->init($this->view, $info);
-          $this->handlers[$type][$id] = &$handler;
+          $this->handlers[$type][$id] = $handler;
         }
 
         // Prevent reference problems.
diff --git a/plugins/views_plugin_exposed_form.inc b/plugins/views_plugin_exposed_form.inc
index dc4b578..21c56fd 100644
--- a/plugins/views_plugin_exposed_form.inc
+++ b/plugins/views_plugin_exposed_form.inc
@@ -14,8 +14,8 @@ class views_plugin_exposed_form extends views_plugin {
    *   The display handler.
    */
   function init(&$view, &$display, $options = array()) {
-    $this->view = &$view;
-    $this->display = &$display;
+    $this->view = $view;
+    $this->display = $display;
 
     $this->unpack_options($this->options, $options);
   }
@@ -112,8 +112,8 @@ class views_plugin_exposed_form extends views_plugin {
   function render_exposed_form($block = FALSE) {
     // Deal with any exposed filters we may have, before building.
     $form_state = array(
-      'view' => &$this->view,
-      'display' => &$this->display,
+      'view' => $this->view,
+      'display' => $this->display,
       'method' => 'get',
       'rerender' => TRUE,
       'no_redirect' => TRUE,
diff --git a/plugins/views_plugin_localization.inc b/plugins/views_plugin_localization.inc
index 30ae965..91b2c29 100644
--- a/plugins/views_plugin_localization.inc
+++ b/plugins/views_plugin_localization.inc
@@ -22,7 +22,7 @@ class views_plugin_localization extends views_plugin {
    *   The view object.
    */
   function init(&$view) {
-    $this->view = &$view;
+    $this->view = $view;
   }
 
   /**
diff --git a/plugins/views_plugin_pager.inc b/plugins/views_plugin_pager.inc
index f39e2d3..813ffd1 100644
--- a/plugins/views_plugin_pager.inc
+++ b/plugins/views_plugin_pager.inc
@@ -18,8 +18,8 @@ class views_plugin_pager extends views_plugin {
    *   The display handler.
    */
   function init(&$view, &$display, $options = array()) {
-    $this->view = &$view;
-    $this->display = &$display;
+    $this->view = $view;
+    $this->display = $display;
 
     $this->unpack_options($this->options, $options);
   }
diff --git a/plugins/views_plugin_row.inc b/plugins/views_plugin_row.inc
index 36b02b1..ba42fa7 100644
--- a/plugins/views_plugin_row.inc
+++ b/plugins/views_plugin_row.inc
@@ -26,8 +26,8 @@ class views_plugin_row extends views_plugin {
    * Initialize the row plugin.
    */
   function init(&$view, &$display, $options = NULL) {
-    $this->view = &$view;
-    $this->display = &$display;
+    $this->view = $view;
+    $this->display = $display;
 
     // Overlay incoming options on top of defaults
     $this->unpack_options($this->options, isset($options) ? $options : $display->handler->get_option('row_options'));
@@ -144,4 +144,3 @@ class views_plugin_row extends views_plugin {
 /**
  * @}
  */
-
diff --git a/plugins/views_plugin_style.inc b/plugins/views_plugin_style.inc
index 24c5bf9..64c0197 100644
--- a/plugins/views_plugin_style.inc
+++ b/plugins/views_plugin_style.inc
@@ -32,8 +32,8 @@ class views_plugin_style extends views_plugin {
    *   from at least two locations. If it's not included, look on the display.
    */
   function init(&$view, &$display, $options = NULL) {
-    $this->view = &$view;
-    $this->display = &$display;
+    $this->view = $view;
+    $this->display = $display;
 
     // Overlay incoming options on top of defaults
     $this->unpack_options($this->options, isset($options) ? $options : $display->handler->get_option('style_options'));
diff --git a/tests/views_query.test b/tests/views_query.test
index 4363721..29242b0 100644
--- a/tests/views_query.test
+++ b/tests/views_query.test
@@ -24,7 +24,7 @@ abstract class ViewsTestCase extends DrupalWebTestCase {
    *  An associative array mapping the columns of the result set from the view
    *  (as keys) and the expected result set (as values).
    */
-  protected function assertIdenticalResultset($view, $expected_result, $column_map = array(), $message = 'Identical result set') {
+  protected function assertIdenticalResultset(view $view, $expected_result, $column_map = array(), $message = 'Identical result set') {
     return $this->assertIdenticalResultsetHelper($view, $expected_result, $column_map, $message, 'assertIdentical');
   }
 
@@ -41,11 +41,11 @@ abstract class ViewsTestCase extends DrupalWebTestCase {
    *  An associative array mapping the columns of the result set from the view
    *  (as keys) and the expected result set (as values).
    */
-  protected function assertNotIdenticalResultset($view, $expected_result, $column_map = array(), $message = 'Identical result set') {
+  protected function assertNotIdenticalResultset(view $view, $expected_result, $column_map = array(), $message = 'Identical result set') {
     return $this->assertIdenticalResultsetHelper($view, $expected_result, $column_map, $message, 'assertNotIdentical');
   }
 
-  protected function assertIdenticalResultsetHelper($view, $expected_result, $column_map, $message, $assert_method) {
+  protected function assertIdenticalResultsetHelper(view $view, $expected_result, $column_map, $message, $assert_method) {
     // Convert $view->result to an array of arrays.
     $result = array();
     foreach ($view->result as $key => $value) {
@@ -112,7 +112,7 @@ abstract class ViewsTestCase extends DrupalWebTestCase {
   /**
    * Helper function to execute a view with debugging.
    */
-  protected function executeView($view, $args = array()) {
+  protected function executeView(view $view, $args = array()) {
     $view->set_display();
     $view->pre_execute($args);
     $view->execute();
diff --git a/tests/views_view.test b/tests/views_view.test
index 6c18a84..567e076 100644
--- a/tests/views_view.test
+++ b/tests/views_view.test
@@ -30,7 +30,7 @@ class viewsViewTest extends ViewsSqlTest {
     $this->assertViewDestroy($view);
   }
 
-  function assertViewDestroy($view) {
+  function assertViewDestroy(view $view) {
     $this->assertFalse(isset($view->display['default']->handler), 'Take sure all displays are destroyed.');
     $this->assertFalse(isset($view->display['attachment_1']->handler), 'Take sure all displays are destroyed.');
 
@@ -67,7 +67,7 @@ class viewsViewTest extends ViewsSqlTest {
   }
 
   function testValidate() {
-    // Test a view with multiple displays. 
+    // Test a view with multiple displays.
     // Validating a view shouldn't change the active display.
     // @todo: Create an extra validation view.
     $view = $this->view_test_destroy();
diff --git a/theme/theme.inc b/theme/theme.inc
index 0f9af63..d67c4bd 100644
--- a/theme/theme.inc
+++ b/theme/theme.inc
@@ -17,7 +17,7 @@
  * @param $display
  *   The display being rendered, if applicable.
  */
-function _views_theme_functions($hook, $view, $display = NULL) {
+function _views_theme_functions($hook, view $view, $display = NULL) {
   $themes = array();
 
   if ($display) {
@@ -184,7 +184,7 @@ function template_preprocess_views_view_fields(&$vars) {
     $empty = $field_output !== 0 && empty($field_output);
     if (empty($field->options['exclude']) && (!$empty || (empty($field->options['hide_empty']) && empty($vars['options']['hide_empty'])))) {
       $object = new stdClass();
-      $object->handler = &$view->field[$id];
+      $object->handler = $view->field[$id];
       $object->inline = !empty($vars['options']['inline'][$id]);
 
       $object->element_type = $object->handler->element_type(TRUE, !$vars['options']['default_field_elements'], $object->inline);
@@ -431,7 +431,7 @@ function template_preprocess_views_view_table(&$vars) {
   $options  = $view->style_plugin->options;
   $handler  = $view->style_plugin;
 
-  $fields   = &$view->field;
+  $fields   = $view->field;
   $columns  = $handler->sanitize_columns($options['columns'], $fields);
 
   $active   = !empty($handler->active) ? $handler->active : '';
@@ -758,11 +758,11 @@ function template_preprocess_views_view_rss(&$vars) {
   global $base_url;
   global $language;
 
-  $view     = &$vars['view'];
+  $view     = $vars['view'];
   $options  = &$vars['options'];
   $items    = &$vars['rows'];
 
-  $style    = &$view->style_plugin;
+  $style    = $view->style_plugin;
 
   // The RSS 2.0 "spec" doesn't indicate HTML can be used in the description.
   // We strip all HTML tags, but need to prevent double encoding from properly
@@ -818,9 +818,9 @@ function template_preprocess_views_view_rss(&$vars) {
  * Default theme function for all RSS rows.
  */
 function template_preprocess_views_view_row_rss(&$vars) {
-  $view     = &$vars['view'];
+  $view     = $vars['view'];
   $options  = &$vars['options'];
-  $item     = &$vars['row'];
+  $item     = $vars['row'];
 
   $vars['title'] = check_plain($item->title);
   $vars['link'] = check_url($item->link);
diff --git a/views.module b/views.module
index e673930..f7dc7e0 100644
--- a/views.module
+++ b/views.module
@@ -36,7 +36,7 @@ function views_forms($form_id, $args) {
 /**
  * Returns a form ID for a Views form using the name and display of the View.
  */
-function views_form_id($view) {
+function views_form_id(view $view) {
   $parts = array(
     'views_form',
     $view->name,
@@ -268,7 +268,7 @@ function views_preprocess_node(&$vars) {
 function views_preprocess_comment(&$vars) {
   // The 'view' attribute of the node is added in template_preprocess_views_view_row_comment()
   if (!empty($vars['node']->view) && !empty($vars['node']->view->name)) {
-    $vars['view'] = &$vars['node']->view;
+    $vars['view'] = $vars['node']->view;
     $vars['theme_hook_suggestions'][] = 'comment__view__' . $vars['node']->view->name;
     if (!empty($vars['node']->view->current_display)) {
       $vars['theme_hook_suggestions'][] = 'comment__view__' . $vars['node']->view->name . '__' . $vars['node']->view->current_display;
@@ -661,7 +661,7 @@ function views_block_view($delta) {
  *   The ID of the display within the view that was used to generate the block
  *   content.
  */
-function views_add_block_contextual_links(&$block, $view, $display_id) {
+function views_add_block_contextual_links(&$block, view $view, $display_id) {
   // Do not add contextual links to an empty block.
   if (!empty($block['content'])) {
     // Contextual links only work on blocks whose content is a renderable
@@ -739,7 +739,7 @@ function views_add_block_contextual_links(&$block, $view, $display_id) {
  * @see views_page_alter()
  * @see template_preprocess_views_view()
  */
-function views_add_contextual_links(&$render_element, $location, $view, $display_id) {
+function views_add_contextual_links(&$render_element, $location, view $view, $display_id) {
   // Do not do anything if the view is configured to hide its administrative
   // links.
   if (empty($view->hide_admin_links)) {
@@ -1445,7 +1445,7 @@ function views_view_is_enabled($view) {
 /**
  * Returns TRUE if a view is disabled, FALSE otherwise.
  */
-function views_view_is_disabled($view) {
+function views_view_is_disabled(view $view) {
   return !empty($view->disabled);
 }
 
@@ -1498,7 +1498,7 @@ function views_move_table($table) {
 /**
  * Export callback to load the view subrecords, which are the displays.
  */
-function views_load_display_records(&$views) {
+function views_load_display_records(view $views) {
   // Get vids from the views.
   $names = array();
   foreach ($views as $view) {
@@ -1539,21 +1539,21 @@ function views_load_display_records(&$views) {
 /**
  * Export CRUD callback to save a view.
  */
-function views_save_view(&$view) {
+function views_save_view(view $view) {
   return $view->save();
 }
 
 /**
  * Export CRUD callback to delete a view.
  */
-function views_delete_view(&$view) {
+function views_delete_view(view $view) {
   return $view->delete(TRUE);
 }
 
 /**
  * Export CRUD callback to export a view.
  */
-function views_export_view(&$view, $indent = '') {
+function views_export_view(view $view, $indent = '') {
   return $view->export($indent);
 }
 
@@ -1624,7 +1624,7 @@ function vpr_trace() {
  * Returns TRUE if the passed-in view contains handlers with views form
  * implementations, FALSE otherwise.
  */
-function views_view_has_form_elements($view) {
+function views_view_has_form_elements(view $view) {
   foreach ($view->field as $field) {
     if (property_exists($field, 'views_form_callback') || method_exists($field, 'views_form')) {
       return TRUE;
@@ -1646,7 +1646,7 @@ function views_view_has_form_elements($view) {
  * step (the default 'views_form_views_form' step). That way it is actually
  * possible for modules to have a multistep form if they need to.
  */
-function views_form($form, &$form_state, $view, $output) {
+function views_form($form, &$form_state, view $view, $output) {
   $form_state['step'] = isset($form_state['step']) ? $form_state['step'] : 'views_form_views_form';
 
   $form = array();
@@ -1694,7 +1694,7 @@ function views_form_submit($form, &$form_state) {
  * Callback for the main step of a Views form.
  * Invoked by views_form().
  */
-function views_form_views_form($form, &$form_state, $view, $output) {
+function views_form_views_form($form, &$form_state, view $view, $output) {
   $form['#prefix'] = '<div class="views-form">';
   $form['#suffix'] = '</div>';
   $form['#theme'] = 'views_form_views_form';
@@ -1833,8 +1833,8 @@ function views_exposed_form($form, &$form_state) {
   // Make sure that we validate because this form might be submitted
   // multiple times per page.
   $form_state['must_validate'] = TRUE;
-  $view = &$form_state['view'];
-  $display = &$form_state['display'];
+  $view = $form_state['view'];
+  $display = $form_state['display'];
 
   $form_state['input'] = $view->get_exposed_input();
 
@@ -1975,7 +1975,7 @@ function views_exposed_form_cache($views_name, $display_name, $form_output = NUL
 /**
  * Build a list of theme function names for use most everywhere.
  */
-function views_theme_functions($hook, $view, $display = NULL) {
+function views_theme_functions($hook, view $view, $display = NULL) {
   require_once DRUPAL_ROOT . '/' . drupal_get_path('module', 'views') . "/theme/theme.inc";
   return _views_theme_functions($hook, $view, $display);
 }
@@ -1983,7 +1983,7 @@ function views_theme_functions($hook, $view, $display = NULL) {
 /**
  * Substitute current time; this works with cached queries.
  */
-function views_views_query_substitutions($view) {
+function views_views_query_substitutions(view $view) {
   global $language_content;
   return array(
     '***CURRENT_VERSION***' => VERSION,
diff --git a/views_ui.module b/views_ui.module
index 4ce6c6e..f24836b 100644
--- a/views_ui.module
+++ b/views_ui.module
@@ -232,7 +232,7 @@ function views_ui_theme() {
 /**
  * Page title callback for the Edit View page.
  */
-function views_ui_edit_page_title($view) {
+function views_ui_edit_page_title(view $view) {
   module_load_include('inc', 'views_ui', 'includes/admin');
   $bases = views_fetch_base_tables();
   $name = $view->get_human_name();
@@ -290,7 +290,7 @@ function views_ui_cache_load($name) {
  * Specialized cache function to add a flag to our view, include an appropriate
  * include, and cache more easily.
  */
-function views_ui_cache_set(&$view) {
+function views_ui_cache_set(view $view) {
   if (!empty($view->locked)) {
     drupal_set_message(t('Changes cannot be made to a locked view.'), 'error');
     return;
@@ -439,7 +439,7 @@ function theme_views_ui_view_preview_section($vars) {
  * @param $title
  *   Add a bolded title of this section.
  */
-function views_ui_view_preview_section_handler_links($view, $type, $title = FALSE) {
+function views_ui_view_preview_section_handler_links(view $view, $type, $title = FALSE) {
   $display = $view->display_handler->display;
   $handlers = $view->display_handler->get_handlers($type);
   $links = array();
@@ -471,7 +471,7 @@ function views_ui_view_preview_section_handler_links($view, $type, $title = FALS
 /**
  * Returns a link to editing a certain display setting.
  */
-function views_ui_view_preview_section_display_category_links($view, $type, $title) {
+function views_ui_view_preview_section_display_category_links(view $view, $type, $title) {
   $display = $view->display_handler->display;
   $links = array(
     $type . '-edit' => array(
@@ -487,7 +487,7 @@ function views_ui_view_preview_section_display_category_links($view, $type, $tit
 /**
  * Returns all contextual links for the main content part of the view.
  */
-function views_ui_view_preview_section_rows_links($view) {
+function views_ui_view_preview_section_rows_links(view $view) {
   $display = $view->display_handler->display;
   $links = array();
   $links = array_merge($links, views_ui_view_preview_section_handler_links($view, 'filter', TRUE));
@@ -740,7 +740,7 @@ function views_ui_ajax_get_form($form_id) {
  * @return
  *   An array of links to this view's display paths.
  */
-function _views_ui_get_paths($view) {
+function _views_ui_get_paths(view $view) {
   $all_paths = array();
   if (empty($view->display)) {
     $all_paths[] = t('Edit this view to add a display.');
@@ -775,7 +775,7 @@ function _views_ui_get_paths($view) {
  * @return
  *   An array of display types that this view includes.
  */
-function _views_ui_get_displays_list($view) {
+function _views_ui_get_displays_list(view $view) {
   $displays = array();
   foreach ($view->display as $display) {
     if (!empty($display->handler->definition['admin'])) {
