diff --git a/src/command/audio.cpp b/src/command/audio.cpp
index cc5e2f7bded64ebbd387b6bfb25562bd9190a43c..af219c5fdd4b7e4316a297f45919e3e9f712e5cf 100644
--- a/src/command/audio.cpp
+++ b/src/command/audio.cpp
@@ -208,8 +208,8 @@ struct audio_save_clip final : public Command {
 
 		auto provider = c->project->AudioProvider();
 
-		auto start_sample = (start * provider->GetSampleRate() + 999) / 1000;
-		auto end_sample = (end * provider->GetSampleRate() + 999) / 1000;
+		auto start_sample = ((int64_t)start * provider->GetSampleRate() + 999) / 1000;
+		auto end_sample = ((int64_t)end * provider->GetSampleRate() + 999) / 1000;
 		if (start_sample >= provider->GetNumSamples() || start_sample >= end_sample) return;
 
 		size_t bytes_per_sample = provider->GetBytesPerSample() * provider->GetChannels();