diff --git a/skcms.cc b/skcms.cc
index 9d4ea58..f6d004c 100644
--- a/skcms.cc
+++ b/skcms.cc
@@ -2044,10 +2044,9 @@
     }
 
     // We can't transform in place unless the PixelFormats are the same size.
-    if (dst == src && (dstFmt >> 1) != (srcFmt >> 1)) {
+    if (dst == src && dst_bpp != src_bpp) {
         return false;
     }
-    // TODO: this check lazilly disallows U16 <-> F16, but that would actually be fine.
     // TODO: more careful alias rejection (like, dst == src + 1)?
 
     Op          program  [32];
diff --git a/tests.c b/tests.c
index a3cfee8..1975d13 100644
--- a/tests.c
+++ b/tests.c
@@ -1124,6 +1124,28 @@
     free(dp3_ptr);
 }
 
+static void test_AliasedTransforms() {
+    // We should be able to skcms_Transform() in place if the source and destination
+    // buffers are perfectly aligned and the pixel formats are the same size.
+
+    uint64_t buf = 0;
+    skcms_AlphaFormat upm = skcms_AlphaFormat_Unpremul;
+    const skcms_ICCProfile *srgb = skcms_sRGB_profile(),
+                           *xyz  = skcms_XYZD50_profile();
+
+    expect( skcms_Transform(&buf, skcms_PixelFormat_A_8, upm, srgb,
+                            &buf, skcms_PixelFormat_G_8, upm, xyz, 1) );
+
+    expect( skcms_Transform(&buf, skcms_PixelFormat_RGB_565  , upm, srgb,
+                            &buf, skcms_PixelFormat_ABGR_4444, upm, xyz, 1) );
+
+    expect( skcms_Transform(&buf, skcms_PixelFormat_RGBA_8888   , upm, srgb,
+                            &buf, skcms_PixelFormat_RGBA_1010102, upm, xyz, 1) );
+
+    expect( skcms_Transform(&buf, skcms_PixelFormat_RGB_161616, upm, srgb,
+                            &buf, skcms_PixelFormat_BGR_hhh   , upm, xyz, 1) );
+}
+
 int main(int argc, char** argv) {
     bool regenTestData = false;
     for (int i = 1; i < argc; ++i) {
@@ -1155,6 +1177,7 @@
     test_Programmatic_sRGB();
     test_ExactlyEqual();
     test_Clamp();
+    test_AliasedTransforms();
 #if 0
     test_CLUT();
 #endif
