diff --git a/views.module b/views.module
index fb49705..188064e 100644
--- a/views.module
+++ b/views.module
@@ -1171,17 +1171,38 @@ function views_include($file) {
 /**
  * Load views files on behalf of modules.
  */
-function views_module_include($api, $reset = FALSE) {
-  if ($reset) {
-    $cache = &drupal_static('ctools_plugin_api_info');
-    if (isset($cache['views']['views'])) {
-      unset($cache['views']['views']);
+function views_module_include($api) {
+  $loaded_files = &drupal_static(__FUNCTION__, array());
+
+  $minimum_version = views_api_minimum_version();
+  $current_version = views_api_version();
+  foreach (module_implements('views_api') as $module) {
+    if (isset($loaded_files[$api][$module])) {
+      continue;
+    }
+    $info = module_invoke($module, 'views_api');
+    $version = $info['api'];
+    $path = isset($info['path']) ? $info['path'] : drupal_get_path('module', $module);
+    // Only process if version is between minimum and current, inclusive.
+    if (version_compare($version, $minimum_version, '>=') && version_compare($version, $current_version, '<=')) {
+      $path = $path . "/$module.$api.inc";
+      if (file_exists($path)) {
+        include_once $path;
+        $loaded_files[$api][$module] = TRUE;
+      }
     }
   }
+}
 
-  // @todo Replace with http://drupal.org/node/1760284.
-  module_load_include('inc', 'ctools', 'includes/plugins');
-  return ctools_plugin_api_include('views', $api, views_api_minimum_version(), views_api_version());
+/**
+ * Implements hook_hook_info().
+ */
+function views_hook_info() {
+  $hooks['views_data'] = array(
+    'group' => 'views',
+  );
+
+  return $hooks;
 }
 
 /**
