Report abuse

diff --git a/lib/puppet/util/autoload.rb b/lib/puppet/util/autoload.rb
index 69a80fa..63f62f2 100644
--- a/lib/puppet/util/autoload.rb
+++ b/lib/puppet/util/autoload.rb
@@ -133,14 +133,20 @@ class Puppet::Util::Autoload
         end
     end

-    # The list of directories to search through for loadable plugins.
-    def searchpath
+    def self.searchpath
+        return @searchpath if @searchpath
         # JJM: Search for optional lib directories in each module bundle.
         module_lib_dirs = Puppet[:modulepath].split(":").collect do |d|
             Dir.glob("%s/*/{plugins,lib}" % d).select do |f|
                 FileTest.directory?(f) 
             end
         end.flatten
-        [module_lib_dirs, Puppet[:libdir], $:].flatten
+        @searchpath = [module_lib_dirs, Puppet[:libdir], $:].flatten
+        @searchpath
+    end
+
+    # The list of directories to search through for loadable plugins.
+    def searchpath
+        self.class.searchpath
     end
 end