diff -up perl-5.8.8/lib/perl5db.pl.bleble perl-5.8.8/lib/perl5db.pl
--- perl-5.8.8/lib/perl5db.pl.bleble 2005-10-29 02:03:21.000000000 +0200
+++ perl-5.8.8/lib/perl5db.pl 2008-05-05 16:22:08.000000000 +0200
@@ -6354,9 +6354,13 @@ sub readline {
$OUT->write( join( '', @_ ) );
# Receive anything there is to receive.
- my $stuff;
- $IN->recv( $stuff, 2048 ); # XXX "what's wrong with sysread?"
- # XXX Don't know. You tell me.
+ $stuff;
+ my $stuff = '';
+ my $buf;
+ do {
+ $IN->recv( $buf = '', 2048 ); # XXX "what's wrong with sysread?"
+ # XXX Don't know. You tell me.
+ } while length $buf and ($stuff .= $buf) !~ /\n/;
# What we got.
$stuff;