diff -ur cndrvcups-capt-1.30/pstocapt2/filter/pstocapt2.c cndrvcups-capt-1.30_/pstocapt2/filter/pstocapt2.c --- cndrvcups-capt-1.30/pstocapt2/filter/pstocapt2.c 2005-11-29 03:02:25.000000000 +0300 +++ cndrvcups-capt-1.30_/pstocapt2/filter/pstocapt2.c 2007-06-15 15:14:17.000000000 +0400 @@ -641,6 +641,7 @@ int numcopies = -1; int is_banner = 0; char *p_read_buf; + BufList *ps_data_tail = NULL; while( (read_bytes = read_line(ifd, read_buf, DATA_BUF_SIZE - 1)) > 0 ) { @@ -677,7 +678,7 @@ if( *ps_data == NULL ) *ps_data = bl; else - buflist_add_tail(*ps_data, bl); + buflist_add_tail_fast(*ps_data, bl, &ps_data_tail); if( read_bytes > 0 ) { @@ -772,7 +773,7 @@ if( *ps_data == NULL ) *ps_data = bl; else - buflist_add_tail(*ps_data, bl); + buflist_add_tail_fast(*ps_data, bl, &ps_data_tail); if( read_bytes > 0 ) {