diff --git a/daemon/src/audio/samplerateconverter.cpp b/daemon/src/audio/samplerateconverter.cpp
index 337e0df4f654b4c88b87bbeebcc57931434c22e4..2f6c3d0e03c5eb901a8c7b17625df8f72da94601 100644
--- a/daemon/src/audio/samplerateconverter.cpp
+++ b/daemon/src/audio/samplerateconverter.cpp
@@ -101,9 +101,8 @@ void SamplerateConverter::resample(const AudioBuffer &dataIn, AudioBuffer &dataO
 
     /*
     TODO: one-shot deinterleave and float-to-short conversion
-    currently using floatBufferIn_ as scratch
     */
-    SFLAudioSample *scratch_buff = reinterpret_cast<SFLAudioSample *>(floatBufferIn_.data());
-    src_float_to_short_array(floatBufferOut_.data(), scratch_buff, outSamples);
-    dataOut.deinterleave(scratch_buff, src_data.output_frames, nbChans);
+    std::vector<SFLAudioSample> scratch_buff(outSamples);
+    src_float_to_short_array(floatBufferOut_.data(), scratch_buff.data(), outSamples);
+    dataOut.deinterleave(scratch_buff.data(), src_data.output_frames, nbChans);
 }