diff --git a/components/streams/src/renderers/screen_render.cpp b/components/streams/src/renderers/screen_render.cpp
index b9b5bb73721574ab6e0345d7233718f9ce7c2879..37c46a717a86642dc8f137d0c91c85c7b30cdd53 100644
--- a/components/streams/src/renderers/screen_render.cpp
+++ b/components/streams/src/renderers/screen_render.cpp
@@ -155,18 +155,19 @@ bool ScreenRender::retrieve(ftl::data::Frame &frame_out) {
 			for (auto &s : sets) {
 				if (s->frameset() == my_id_) continue;  // Skip self
 
-				auto &mixmap = mixmap_[s->id().id];
-				if (mixmap.track == -1) mixmap.track = tracks_++;
-
 				// TODO: Render audio also...
 				// Use another thread to merge all audio channels along with
 				// some degree of volume adjustment. Later, do 3D audio.
-				mixer_.resize(tracks_);
+				//mixer_.resize(tracks_);
 
 				// Inject and copy data items
 				for (size_t i=0; i<s->frames.size(); ++i) {
 					auto &f = s->frames[i];
 
+					auto &mixmap = mixmap_[f.id().id];
+					if (mixmap.track == -1) mixmap.track = tracks_++;
+					mixer_.resize(tracks_);
+
 					if (mixmap.last_timestamp != f.timestamp() && f.hasChannel(Channel::AudioStereo)) {
 						const auto &audio = f.get<std::list<ftl::audio::Audio>>(Channel::AudioStereo).front();
 						mixer_.write(mixmap.track, audio.data());