diff --git a/src/libcamera/bayer_format.cpp b/src/libcamera/bayer_format.cpp
index d4e7f142..e06cd6e8 100644
--- a/src/libcamera/bayer_format.cpp
+++ b/src/libcamera/bayer_format.cpp
@@ -272,10 +272,6 @@ BayerFormat BayerFormat::fromV4L2PixelFormat(V4L2PixelFormat v4l2Format)
  * The transformed image would have a GRBG order. The bit depth and modifiers
  * are not affected.
  *
- * Note that transpositions are ignored as the order of a transpose with
- * respect to the flips would have to be defined, and sensors are not expected
- * to support transposition.
- *
  * \return The transformed Bayer format
  */
 BayerFormat BayerFormat::transform(Transform t) const
@@ -292,6 +288,11 @@ BayerFormat BayerFormat::transform(Transform t) const
 	if (!!(t & Transform::VFlip))
 		result.order = static_cast<Order>(result.order ^ 2);
 
+	if (!!(t & Transform::Transpose) && result.order == 1)
+		result.order = static_cast<Order>(2);
+	else if (!!(t & Transform::Transpose) && result.order == 2)
+		result.order = static_cast<Order>(1);
+
 	return result;
 }
 
