diff --git a/src/lib/tunes/tunes.cpp b/src/lib/tunes/tunes.cpp
index d0b4646038349156a2b700632bc6614737a0c6fb..90e1d4226b6c2bac2ec84192ef3c640e9a888e7d 100644
--- a/src/lib/tunes/tunes.cpp
+++ b/src/lib/tunes/tunes.cpp
@@ -94,6 +94,7 @@ int Tunes::set_control(const tune_control_s &tune_control)
 		switch (tune_control.tune_id) {
 		case static_cast<int>(TuneID::CUSTOM):
 			if (_tune == nullptr || tune_control.tune_override) {
+				_tune = nullptr;  // remove tune in case of override
 				_frequency = (unsigned)tune_control.frequency;
 				_duration = (unsigned)tune_control.duration;
 				_silence = (unsigned)tune_control.silence;
diff --git a/src/systemcmds/tune_control/tune_control.cpp b/src/systemcmds/tune_control/tune_control.cpp
index 11a4228c9c5f4bebfe56daa09d09ebd2d15fc112..592ae1f401b511dcb2cd0c440e6e3b629680cb0d 100644
--- a/src/systemcmds/tune_control/tune_control.cpp
+++ b/src/systemcmds/tune_control/tune_control.cpp
@@ -71,6 +71,8 @@ usage()
 		"\t-d <duration>\t\tDuration of the tone in us\n"
 		"\t-s <strength>\t\tStrength of the tone between 0-100\n"
 		"\t-m <melody>\t\tMelody in a string form ex: \"MFT200e8a8a\"\n"
+		"\n"
+		"tune_control stop \t\t Stops playback, useful for repeated tunes\n"
 	);
 }
 
@@ -185,7 +187,7 @@ tune_control_main(int argc, char *argv[])
 				usleep(duration + silence);
 				exit_counter++;
 
-				// exit if the loop is doing more thatn 50 iteration
+				// exit if the loop is doing too many iterations
 				if (exit_counter > MAX_NOTE_ITERATION) {
 					break;
 				}
@@ -193,7 +195,7 @@ tune_control_main(int argc, char *argv[])
 
 			PX4_INFO("Playback finished.");
 
-		} else {
+		} else {  // tune id instead of string has been provided
 			if (tune_control.tune_id == 0) {
 				tune_control.tune_id = 1;
 			}
@@ -210,13 +212,22 @@ tune_control_main(int argc, char *argv[])
 			usleep(500000);
 			exit_counter++;
 
-			// exit if the loop is doing more thatn 50 iteration
+			// exit if the loop is doing too many iterations
 			if (exit_counter > MAX_NOTE_ITERATION) {
 				break;
 			}
 		}
 
-	} else {
+	} else if (!strcmp(argv[myoptind], "stop")) {
+		PX4_INFO("Stopping playback...");
+		tune_control.tune_id = 0;
+		tune_control.frequency = 0;
+		tune_control.duration = 0;
+		tune_control.silence = 0;
+		tune_control.tune_override = true;
+		publish_tune_control(tune_control);
+
+	}	else {
 		usage();
 		return 1;
 	}