diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 6573e3c8105bd7c3f9fbe5e516964e99588da36a..74192caf21d68dab06a51c7227beb12c60508ffb 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -1189,9 +1189,11 @@ unsigned avcodec_build( void )
 }
 
 static void init_crcs(void){
+#if LIBAVUTIL_VERSION_INT  < (50<<16)
     av_crc04C11DB7= av_mallocz_static(sizeof(AVCRC) * 257);
     av_crc8005    = av_mallocz_static(sizeof(AVCRC) * 257);
     av_crc07      = av_mallocz_static(sizeof(AVCRC) * 257);
+#endif
     av_crc_init(av_crc04C11DB7, 0, 32, 0x04c11db7, sizeof(AVCRC)*257);
     av_crc_init(av_crc8005    , 0, 16, 0x8005    , sizeof(AVCRC)*257);
     av_crc_init(av_crc07      , 0,  8, 0x07      , sizeof(AVCRC)*257);
diff --git a/libavutil/crc.c b/libavutil/crc.c
index baa605d325c9b7cb5b9211f3a6b48c1eba1a7472..02fb860b86f48b36e7cb67d5ae6c95dc9b76868b 100644
--- a/libavutil/crc.c
+++ b/libavutil/crc.c
@@ -21,10 +21,17 @@
 #include "common.h"
 #include "crc.h"
 
+#if LIBAVUTIL_VERSION_INT  < (50<<16)
 AVCRC *av_crcEDB88320;
 AVCRC *av_crc04C11DB7;
 AVCRC *av_crc8005    ;
 AVCRC *av_crc07      ;
+#else
+AVCRC av_crcEDB88320[257];
+AVCRC av_crc04C11DB7[257];
+AVCRC av_crc8005    [257];
+AVCRC av_crc07      [257];
+#endif
 
 /**
  * Inits a crc table.
diff --git a/libavutil/crc.h b/libavutil/crc.h
index e739c309b74287ad4e8a9f59a274feac352e865d..1f6431992bfa13cdae7cc768df4eba271f2e57d3 100644
--- a/libavutil/crc.h
+++ b/libavutil/crc.h
@@ -23,10 +23,17 @@
 
 typedef uint32_t AVCRC;
 
+#if LIBAVUTIL_VERSION_INT  < (50<<16)
 extern AVCRC *av_crcEDB88320;
 extern AVCRC *av_crc04C11DB7;
 extern AVCRC *av_crc8005    ;
 extern AVCRC *av_crc07      ;
+#else
+extern AVCRC av_crcEDB88320[];
+extern AVCRC av_crc04C11DB7[];
+extern AVCRC av_crc8005    [];
+extern AVCRC av_crc07      [];
+#endif
 
 int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size);
 uint32_t av_crc(const AVCRC *ctx, uint32_t start_crc, const uint8_t *buffer, size_t length);