diff --git a/modules/video_output/decklink.cpp b/modules/video_output/decklink.cpp
index 84de2c0009fe06eaf734bc125a70c1abfe902998..de5a546538efe9667963a815273d5acfaf628455 100644
--- a/modules/video_output/decklink.cpp
+++ b/modules/video_output/decklink.cpp
@@ -439,8 +439,8 @@ static int OpenDecklink(vout_display_t *vd, decklink_sys_t *sys, video_format_t
         size_t len = strlen(mode);
         if (len > 4)
         {
-            free(mode);
             msg_Err(vd, "Invalid mode %s", mode);
+            free(mode);
             goto error;
         }
         strncpy(wanted_mode.str, mode, 4);