diff --git a/src/fisch/vx/playback_program_builder.cpp b/src/fisch/vx/playback_program_builder.cpp
index 583fcc125468d578dfa79c7d6ecff2ca532dc1c1..99fb632182d54a461870f517898f3300604d70cc 100644
--- a/src/fisch/vx/playback_program_builder.cpp
+++ b/src/fisch/vx/playback_program_builder.cpp
@@ -113,8 +113,8 @@ std::shared_ptr<PlaybackProgram> PlaybackProgramBuilder::done()
 		                << size_to_fpga() << ") larger than playback memory size on FPGA ("
 		                << playback_memory_size_to_fpga << ") -> no timing guarantees possible.");
 	}
-	std::shared_ptr<PlaybackProgram> ret(m_program);
-	m_program = std::make_shared<PlaybackProgram>();
+	auto ret = std::make_shared<PlaybackProgram>();
+	std::swap(ret, m_program);
 	return ret;
 }