diff --git a/apps/aomdec.c b/apps/aomdec.c
index 4b7fc40..8e98f0b 100644
--- a/apps/aomdec.c
+++ b/apps/aomdec.c
@@ -900,6 +900,11 @@
                   y4m_buf, sizeof(y4m_buf), aom_input_ctx.width,
                   aom_input_ctx.height, &aom_input_ctx.framerate,
                   img->monochrome, img->csp, img->fmt, img->bit_depth);
+              if (img->csp == AOM_CSP_COLOCATED) {
+                fprintf(stderr,
+                        "Warning: Y4M lacks a colorspace for colocated "
+                        "chroma. Using a placeholder.\n");
+              }
               if (do_md5) {
                 MD5Update(&md5_ctx, (md5byte *)y4m_buf, (unsigned int)len);
               } else {
diff --git a/common/y4menc.c b/common/y4menc.c
index c539b5b..e3f5d5b 100644
--- a/common/y4menc.c
+++ b/common/y4menc.c
@@ -35,6 +35,10 @@
     default:
       if (csp == AOM_CSP_VERTICAL) {
         return "C420mpeg2 XYSCSS=420MPEG2";
+      } else if (csp == AOM_CSP_COLOCATED) {
+        // Note that Y4M does not have a dedicated header for colocated chroma,
+        // and that FFMPEG interprets C420 as C420jpeg.
+        return "C420";
       } else {
         return "C420jpeg";
       }
diff --git a/common/y4minput.c b/common/y4minput.c
index 5338370..f3dfaaf 100644
--- a/common/y4minput.c
+++ b/common/y4minput.c
@@ -823,6 +823,19 @@
             "Only progressive scan handled.\n");
     return -1;
   }
+  /* Only support vertical chroma sample position if the input format is
+   * already 420mpeg2. Colocated is not supported in Y4M.
+   */
+  if (csp == AOM_CSP_VERTICAL && strcmp(_y4m->chroma_type, "420mpeg2") != 0) {
+    fprintf(stderr,
+            "Vertical chroma sample position only supported "
+            "for 420mpeg2 input\n");
+    return -1;
+  }
+  if (csp == AOM_CSP_COLOCATED) {
+    fprintf(stderr, "Colocated chroma sample position not supported in Y4M\n");
+    return -1;
+  }
   _y4m->aom_fmt = AOM_IMG_FMT_I420;
   _y4m->bps = 12;
   _y4m->bit_depth = 8;
@@ -833,10 +846,6 @@
     _y4m->dst_buf_read_sz =
         _y4m->pic_w * _y4m->pic_h +
         2 * ((_y4m->pic_w + 1) / 2) * ((_y4m->pic_h + 1) / 2);
-    if (csp == AOM_CSP_VERTICAL) {
-      fprintf(stderr, "Unsupported conversion from 420jpeg to 420mpeg2\n");
-      return -1;
-    }
     /* Natively supported: no conversion required. */
     _y4m->aux_buf_sz = _y4m->aux_buf_read_sz = 0;
     _y4m->convert = y4m_convert_null;
