diff --git a/modules/video_filter/puzzle_mgt.c b/modules/video_filter/puzzle_mgt.c
index 8f2fd1907a2bb823991dbd48b7d5ccc371891475..d770d7a9df25c99d2d72f693b3ef06b44f0ab135 100644
--- a/modules/video_filter/puzzle_mgt.c
+++ b/modules/video_filter/puzzle_mgt.c
@@ -465,11 +465,9 @@ int puzzle_shuffle( filter_t *p_filter )
 int puzzle_generate_rand_pce_list( filter_t *p_filter, int32_t **pi_pce_lst )
 {
     filter_sys_t *p_sys = p_filter->p_sys;
-
     int32_t i_pieces_nbr = p_sys->s_allocated.i_pieces_nbr;
 
-    if (pi_pce_lst != NULL )
-        free( *pi_pce_lst );
+    free( *pi_pce_lst );
     *pi_pce_lst = calloc( i_pieces_nbr, sizeof(**pi_pce_lst) );
     if( !*pi_pce_lst )
         return VLC_ENOMEM;