diff -up SOAP-Lite-0.711/lib/SOAP/Lite.pm.old SOAP-Lite-0.711/lib/SOAP/Lite.pm --- SOAP-Lite-0.711/lib/SOAP/Lite.pm.old 2010-06-03 13:01:08.973597800 +0200 +++ SOAP-Lite-0.711/lib/SOAP/Lite.pm 2010-06-03 13:01:51.179597164 +0200 @@ -461,7 +461,7 @@ sub proxy { (my $protocol_class = "${class}::$protocol") =~ s/-/_/g; no strict 'refs'; - unless (defined %{"$protocol_class\::Client::"} + unless ( %{"$protocol_class\::Client::"} && UNIVERSAL::can("$protocol_class\::Client" => 'new') ) { eval "require $protocol_class"; @@ -2200,7 +2200,7 @@ sub decode_value { { no strict qw(refs); - if (! defined(%{"${schemaclass}::"}) ) { + if (! %{"${schemaclass}::"} ) { eval "require $schemaclass" or die $@ if not ref $schemaclass; } }