-ok(!$@, "dispell from signature error 1 ($@)");
-ok($res, 'dispell from signature error 2');
+ok(!$@, "re-dispell from good sig doesn't croak ($@)");
+ok($res, 're-dispell from good sig is valid');
+
+$res = eval { dispell my $b, $wiz };
+ok(!$@, "dispell non-magic object doesn't croak ($@)");
+is($res, 0, 'dispell non-magic object returns 0');
+
+$sig = gensig;
+{
+ my $wiz = wizard sig => $sig;
+ my $b = 2;
+ my $res = cast $b, $wiz;
+}
+my $c = 3;
+$res = eval { cast $c, $sig };
+ok(!$@, "cast from obsolete signature doesn't croak ($@)");
+ok(!defined($res), 'cast from obsolete signature returns undef');