diff --git a/src/effects.c b/src/effects.c
index 5d128020..028bd24c 100644
--- a/src/effects.c
+++ b/src/effects.c
@@ -684,10 +684,10 @@ void libxmp_process_fx(struct context_data *ctx, struct channel_data *xc, int ch
 		EFFECT_MEMORY_S3M(fxp);
 		if (fxp) {
 			xc->retrig.val = fxp;
+			xc->retrig.type = MSN(xc->retrig.val);
 		}
 		if (note) {
 			xc->retrig.count = LSN(xc->retrig.val) + 1;
-			xc->retrig.type = MSN(xc->retrig.val);
 		}
 		SET(RETRIG);
 		break;
