}
 
 
-=item config_boolean ( VARIABLE )
+=item config_bool ( VARIABLE )
 
-Retrieve the boolean configuration C<VARIABLE>.
+Retrieve the bool configuration C<VARIABLE>. The return value
+is usable as a boolean in perl (and C<undef> if it's not defined,
+of course).
 
 Must be called on a repository instance.
 
 
 =cut
 
-sub config_boolean {
+sub config_bool {
        my ($self, $var) = @_;
        $self->repo_path()
                or throw Error::Simple("not a repository");
 
        try {
-               return $self->command_oneline('config', '--bool', '--get',
+               my $val = $self->command_oneline('config', '--bool', '--get',
                                              $var);
+               return undef unless defined $val;
+               return $val eq 'true';
        } catch Git::Error::Command with {
                my $E = shift;
                if ($E->value() == 1) {
        if ($self->{i} >= scalar @{$self->{data}}) {
                return undef;
        }
-       return $self->{'data'}->[ $self->{i}++ ];
+       my $i = $self->{i};
+       if (wantarray) {
+               $self->{i} = $#{$self->{'data'}} + 1;
+               return splice(@{$self->{'data'}}, $i);
+       }
+       $self->{i} = $i + 1;
+       return $self->{'data'}->[ $i ];
 }
 
 sub CLOSE {