--- PurePerl.pm~	Fri Apr 12 10:46:29 2002
+++ PurePerl.pm	Fri Apr 12 11:12:19 2002
@@ -344,9 +344,11 @@
    my $maxlen = shift;
    return "undef" unless defined $v;
    return $v      if looks_like_number($v);
-   my $newv = substr($v,0,$maxlen-5) if $maxlen;
-   $newv .= '...' if( $maxlen and $maxlen < length $v);
-   return "'$newv'";
+   if ($maxlen and $maxlen < length($v) + 2) {
+       $v = substr($v,0,$maxlen-5);
+       $v .= '...';
+   }
+   return "'$v'";
 }
 
 package DBD::var;		# ============ DBD::var
@@ -408,7 +410,7 @@
 }
 sub errstr {
     my $h = shift;
-    my $errstr = $h->{errstr} || $h->{err};
+    my $errstr = $h->{errstr} || $h->{'err'};
     $h->{Database}->{errstr} = $errstr if $h->{Database};
     return $errstr;
 }
@@ -430,7 +432,7 @@
 }
 sub set_err {
     my($h,$errnum,$msg,$state,$method, $rv)=@_;
-    $h->{Database}->{errstr} = $msg if $h->{Database};
+    $h->{Database}->{'errstr'} = $msg if $h->{Database};
     $DBI::errstr = $msg;
     $DBI::state  = $state if defined $state;
     $h->{'state'}=$state if defined $state;
@@ -566,7 +568,9 @@
     my $fbav = $h->_get_fbav;
     DBI::croak("bind_columns called with wrong number of args")
 	if @_ != @$fbav;
-    $h->bind_col($_, $_[$_],'from_bind_columns') foreach (0..@_-1);
+    foreach (0..@_-1) {
+	$h->bind_col($_, $_[$_],'from_bind_columns');
+    }
     return 1;
 }
 
