? compile
Index: players.c
===================================================================
RCS file: /cvs/gnome/esound/players.c,v
retrieving revision 1.46
diff -u -u -r1.46 players.c
--- players.c	26 May 2005 00:11:00 -0000	1.46
+++ players.c	5 Apr 2006 18:21:25 -0000
@@ -292,12 +292,15 @@
 			   &rd_fds, NULL, NULL, &timeout ) ;
 	if ( can_read > 0 )
 	{
+	    int bytes_read;
 	    player->actual_length = 0;
 	    do {
-		ESD_READ_BIN( player->source_id,
+		bytes_read = ESD_READ_BIN( player->source_id,
 			      player->data_buffer + player->actual_length, 
 			      player->buffer_length - player->actual_length,
 			      actual, "str rd" );
+		if (bytes_read < player->buffer_length - player->actual_length)
+			break;
 		
 		/* check for end of stream */
 		if ( actual == 0 
