die "$pkgname->new did not return an Amanda::Changer object or an Amanda::Changer::Error"
unless ($rv->isa("Amanda::Changer") or $rv->isa("Amanda::Changer::Error"));
+ if ($rv->isa("Amanda::Changer::Error")) {
+ return $rv;
+ }
+
if ($rv->isa("Amanda::Changer")) {
# add an instance variable or two
$rv->{'fatal_error'} = undef;
reason => $err->{'reason'},
message => $suberrors->[0][0] . ": " . $err->{'message'});
} else {
- my $fatal = $classmeth or grep { $err->[1]{'fatal'} } @$suberrors;
+ my $fatal = $classmeth or grep { $_->[1]{'fatal'} } @$suberrors;
my $reason;
if (!$fatal) {