diff --git a/libavcodec/g2meet.c b/libavcodec/g2meet.c
index 99d4d1ec37b266dce2bf68bc0a4169e346885d4d..3e81541e68283c5857acb066b2c10328775abbdf 100644
--- a/libavcodec/g2meet.c
+++ b/libavcodec/g2meet.c
@@ -490,7 +490,7 @@ static int g2m_load_cursor(AVCodecContext *avctx, G2MContext *c,
     cursor_hot_y  = bytestream2_get_byte(gb);
     cursor_fmt    = bytestream2_get_byte(gb);
 
-    cursor_stride = cursor_w * 4;
+    cursor_stride = FFALIGN(cursor_w, 32) * 4;
 
     if (cursor_w < 1 || cursor_w > 256 ||
         cursor_h < 1 || cursor_h > 256) {
@@ -516,11 +516,6 @@ static int g2m_load_cursor(AVCodecContext *avctx, G2MContext *c,
         return AVERROR_PATCHWELCOME;
     }
 
-    if (cursor_fmt == 1 && cursor_w % 32) {
-        avpriv_report_missing_feature(avctx, "odd monochrome cursor width %d", cursor_w);
-        return AVERROR_PATCHWELCOME;
-    }
-
     tmp = av_realloc(c->cursor, cursor_stride * cursor_h);
     if (!tmp) {
         av_log(avctx, AV_LOG_ERROR, "Cannot allocate cursor buffer\n");