diff --git a/includes/registry.inc b/includes/registry.inc
index 9d4328e..82ba80a 100644
--- a/includes/registry.inc
+++ b/includes/registry.inc
@@ -39,6 +39,11 @@ function _ctools_registry_files_alter(&$files, $indexed_modules) {
           }
 
           if (is_string($plugin_definition[$class_key])) {
+            // Do not use the registry if the class can already be loaded.
+            if (class_exists($plugin_definition[$class_key])) {
+              continue;
+            }
+
             // Plugin definition uses the shorthand for defining a class name
             // and location; look for the containing file by following naming
             // convention.
@@ -48,6 +53,12 @@ function _ctools_registry_files_alter(&$files, $indexed_modules) {
             // Plugin uses the verbose definition to indicate where its class
             // files are.
             $class = $plugin_definition[$class_key]['class'];
+
+            // Do not use the registry if the class can already be loaded.
+            if (class_exists($class)) {
+              continue;
+            }
+
             // Use the filename if it's explicitly set, else follow the naming
             // conventions.
             $filename = isset($plugin_definition[$class_key]['file']) ? $plugin_definition[$class_key]['file'] : $class . '.class.php';
