Index: server-src/planner.c
--- server-src/planner.c	Mon Mar 19 19:21:08 2001
+++ server-src/planner.c	Sat Mar 30 13:22:57 2002
@@ -1694,18 +1694,18 @@
 	dp = bi->dp;
 
 	if(bi->deleted)
-	    new_total = total_size + TAPE_BLOCK_SIZE + est(dp)->dump_size + tape_mark;
+	    new_total = total_size + TAPE_BLOCK_SIZE + bi->size + tape_mark;
 	else
 	    new_total = total_size - est(dp)->dump_size + bi->size;
 
-	if(new_total <= tape_length) { /* reinstate it */
+	if(new_total <= tape_length && bi->size < tape->length) {
+	    /* reinstate it */
+	    total_size = new_total;
 	    if(bi->deleted) {
-		total_size = new_total;
-		total_lev0 += (double) est(dp)->dump_size;
+		total_lev0 += (double) bi->size;
 		insert_disk(&schedq, dp, schedule_order);
 	    }
 	    else {
-		total_size = new_total;
 		est(dp)->dump_level = bi->level;
 		est(dp)->dump_size = bi->size;
 	    }
@@ -1781,6 +1781,8 @@
 
     bi->deleted = 1;
     bi->dp = dp;
+    bi->level = est(dp)->dump_level;
+    bi->size = est(dp)->dump_size;
     bi->errstr = stralloc(errstr);
 
     remove_disk(&schedq, dp);
