Index: libs/ardour/audio_diskstream.cc
===================================================================
--- libs/ardour/audio_diskstream.cc	(revision 7534)
+++ libs/ardour/audio_diskstream.cc	(working copy)
@@ -2136,12 +2136,6 @@
 
 	ChannelInfo* chan = (*c)[n];
 	
-	if (chan->write_source) {
-		chan->write_source->done_with_peakfile_writes ();
-		chan->write_source->set_allow_remove_if_empty (true);
-		chan->write_source.reset ();
-	}
-
 	try {
 		if ((chan->write_source = _session.create_audio_source_for_session (*this, n, destructive())) == 0) {
 			throw failed_constructor();
@@ -2176,9 +2170,10 @@
 
 	for (chan = c->begin(), n = 0; chan != c->end(); ++chan, ++n) {
 		if (!destructive()) {
-
 			if ((*chan)->write_source && mark_write_complete) {
 				(*chan)->write_source->mark_streaming_write_completed ();
+				(*chan)->write_source->done_with_peakfile_writes ();
+				
 			}
 			use_new_write_source (n);
 
