diff --git a/src/lib/tunes/tunes.cpp b/src/lib/tunes/tunes.cpp
index a82d51e95c7cbd50c256d1bfeae294ab3a1dc864..726cdcee7bec75604ebe0be21a42b72364b4c463 100644
--- a/src/lib/tunes/tunes.cpp
+++ b/src/lib/tunes/tunes.cpp
@@ -110,7 +110,12 @@ int Tunes::set_control(const tune_control_s &tune_control)
 		reset(_repeat);
 
 		// Strength will remain valid for the entire tune, unless interrupted.
-		_strength = (unsigned)tune_control.strength;
+		if ((unsigned)tune_control.strength <= TUNE_MAX_STRENGTH) {
+			_strength = (unsigned)tune_control.strength;
+
+		} else {
+			_strength = TUNE_MAX_STRENGTH;
+		}
 
 		// Special treatment for custom tunes
 		if (tune_control.tune_id == static_cast<int>(TuneID::CUSTOM)) {
@@ -138,7 +143,13 @@ void Tunes::set_string(const char *const string, uint8_t strength)
 		_tune = string;
 		_tune_start_ptr = string;
 		_next = _tune;
-		_strength = strength;
+
+		if (strength <= TUNE_MAX_STRENGTH) {
+			_strength = strength;
+
+		} else {
+			_strength = TUNE_MAX_STRENGTH;
+		}
 	}
 }
 
diff --git a/src/lib/tunes/tunes.h b/src/lib/tunes/tunes.h
index 360d6abe43ecdab49f6f1abeb78832cfbd1c56b0..3b62553ebe2064f7b43ba06762617488ad61c7da 100644
--- a/src/lib/tunes/tunes.h
+++ b/src/lib/tunes/tunes.h
@@ -46,6 +46,8 @@
 #define TUNE_DEFAULT_TEMPO 120
 #define TUNE_DEFAULT_OCTAVE 4
 #define TUNE_DEFAULT_NOTE_LENGTH 4
+#define TUNE_MAX_STRENGTH 100
+
 
 /**
  *  Library for parsing tunes from melody-strings or dedicated tune messages.