diff -ur vte-0.34.8.orig/src/ring.c vte-0.34.8/src/ring.c
--- vte-0.34.8.orig/src/ring.c	2013-06-28 16:44:33.000000000 +0200
+++ vte-0.34.8/src/ring.c	2013-09-21 02:13:09.310710662 +0200
@@ -251,14 +251,14 @@
 	}
 
 	if (do_truncate) {
+		_vte_stream_truncate (ring->row_stream, position * sizeof (record));
+		_vte_stream_truncate (ring->attr_stream, records[0].attr_offset);
+		_vte_stream_truncate (ring->text_stream, records[0].text_offset);
 		if (records[0].text_offset < ring->last_attr.text_offset)
 			if (!_vte_stream_read (ring->attr_stream, records[0].attr_offset, (char *) &ring->last_attr, sizeof (ring->last_attr))) {
 				ring->last_attr.text_offset = 0;
 				ring->last_attr.attr.i = basic_cell.i.attr;
 			}
-		_vte_stream_truncate (ring->row_stream, position * sizeof (record));
-		_vte_stream_truncate (ring->attr_stream, records[0].attr_offset);
-		_vte_stream_truncate (ring->text_stream, records[0].text_offset);
 	}
 }
 
