diff --git a/cores/arduino/wiring_digital.c b/cores/arduino/wiring_digital.c
index 0d51d57d..e22bdb4d 100644
--- a/cores/arduino/wiring_digital.c
+++ b/cores/arduino/wiring_digital.c
@@ -103,6 +103,10 @@ static void turnOffPWM(uint8_t pin)
 
 	/* TCA0 */
 	case TIMERA0:
+		// check, if TCA is set to Port B (default megaavr-PWM ports)
+		// see variants/nona4809/variant.c line 13
+		if (!(PORTMUX_TCAROUTEA == PORTMUX_TCA0_PORTB_gc))
+			break;
 		/* Bit position will give output channel */
 		bit_pos = digitalPinToBitPosition(pin);
 
@@ -113,7 +117,15 @@ static void turnOffPWM(uint8_t pin)
 
 	/* TCB - only one output */
 	case TIMERB0:
+		// check, if TCB0 is set to alternate mode PF4 (Pin D6) (default megaavr-PWM)
+		// see variants/nona4809/variant.c line 31
+		if ((pin == 6) && ((PORTMUX_TCBROUTEA & PORTMUX_TCB0_bm) != PORTMUX_TCB0_bm))
+			break;
 	case TIMERB1:
+		// check, if TCB1 is set to alternate mode PF5 (Pin D3) (default megaavr-PWM)
+		// see variants/nona4809/variant.c line 36
+		if ((pin == 3) && ((PORTMUX_TCBROUTEA & PORTMUX_TCB1_bm) != PORTMUX_TCB1_bm))
+			break;
 	case TIMERB2:
 	case TIMERB3: