diff --git a/aws-sdk-core/lib/aws-sdk-core/eager_loader.rb b/aws-sdk-core/lib/aws-sdk-core/eager_loader.rb
index <HASH>..<HASH> 100644
--- a/aws-sdk-core/lib/aws-sdk-core/eager_loader.rb
+++ b/aws-sdk-core/lib/aws-sdk-core/eager_loader.rb
@@ -17,12 +17,11 @@ module Aws
       @loaded << klass_or_module
       klass_or_module.constants.each do |const_name|
         path = klass_or_module.autoload?(const_name)
-        require(path) if path
-        const = klass_or_module.const_get(const_name)
-        if const.is_a?(Module)
-          unless @loaded.include?(const)
-            load(const)
-          end
+        begin
+          require(path) if path
+          const = klass_or_module.const_get(const_name)
+          self.load(const) if Module === const && !@loaded.include?(const)
+        rescue LoadError
         end
       end
       self
Test failure fixes.

The fix for eager_autoload! exposed an issue with autoloading optional
dependencies eagerly. Travis caught these errors when testing against
Ruby installations that did not have these optional dependencies
present.

See #<I>