diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c
index 0614d103c1f69e31339b40794d4521cf34de873a..2f2ff68486e3b848591447b3f291ca9b9668d8fa 100644
--- a/util/spkmodem_recv/spkmodem-recv.c
+++ b/util/spkmodem_recv/spkmodem-recv.c
@@ -22,7 +22,6 @@
 #define FLUSH_TIMEOUT 1
 
 signed short frame[2 * SAMPLES_PER_FRAME];
-signed short pulse[2 * SAMPLES_PER_FRAME];
 int f1, f2;
 int lp = 0;
 int ascii_bit = 7;
@@ -76,6 +75,7 @@ void
 fetch_sample(void)
 {
 	static int ringpos = 0;
+	static signed short pulse[2 * SAMPLES_PER_FRAME];
 
 	f1 -= pulse[ringpos];
 	f1 += pulse[(ringpos + SAMPLES_PER_FRAME) % (2 * SAMPLES_PER_FRAME)];