diff --git a/libraries/liblber/io.c b/libraries/liblber/io.c
index 95dc49b79e32dbf4a0b9c29d367f93a46233afce..6474acd56d4f3481d0d48882a35a522644b70145 100644
--- a/libraries/liblber/io.c
+++ b/libraries/liblber/io.c
@@ -191,7 +191,7 @@ ber_free( BerElement *ber, int freebuf )
 int
 ber_flush( Sockbuf *sb, BerElement *ber, int freeit )
 {
-	ber_len_t	nwritten, towrite;
+	ber_len_t	towrite;
 	ber_slen_t	rc;	
 
 	assert( sb != NULL );
@@ -222,16 +222,14 @@ ber_flush( Sockbuf *sb, BerElement *ber, int freeit )
 #endif
 	}
 
-	nwritten = 0;
-	do {
+	while ( towrite > 0 ) {
 		rc = ber_int_sb_write( sb, ber->ber_rwptr, towrite );
 		if (rc<=0) {
 			return -1;
 		}
 		towrite -= rc;
-		nwritten += rc;
 		ber->ber_rwptr += rc;
-	} while ( towrite > 0 );
+	} 
 
 	if ( freeit )
 		ber_free( ber, 1 );