diff --git a/modules/Bio/EnsEMBL/Utils/Proxy.pm b/modules/Bio/EnsEMBL/Utils/Proxy.pm
index 51ff03436a05e1a258aa7f08d98480211e3930b1..cc11f97574209f631a74413002294c9f77d4acba 100644
--- a/modules/Bio/EnsEMBL/Utils/Proxy.pm
+++ b/modules/Bio/EnsEMBL/Utils/Proxy.pm
@@ -135,9 +135,11 @@ sub isa {
 
 sub can {
   my ($self, $method) = @_;
-  return 1 if $self->SUPER::can($method);
-  return 1 if $self->__proxy()->can($method);
-  return 0;
+  my $super_can = $self->SUPER::can($method);
+  return $super_can if $super_can;
+  my $proxy_can = $self->__proxy()->can($method);
+  return $proxy_can if $proxy_can;
+  return;
 }
 
 =head2 DESTROY