diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+4.11
+----
+* Proper `profunctors` 5.1 support. This extended the superclass constraints for `Conjoined`, so it resulted in a major version bump.
+
 4.10
 ----
 * Added `elemIndexOf`, `elemIndicesOf`, `findIndexOf`, and `findIndicesOf`.
diff --git a/lens.cabal b/lens.cabal
--- a/lens.cabal
+++ b/lens.cabal
@@ -1,6 +1,6 @@
 name:          lens
 category:      Data, Lenses, Generics
-version:       4.10
+version:       4.11
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
diff --git a/src/Control/Lens/Internal/Indexed.hs b/src/Control/Lens/Internal/Indexed.hs
--- a/src/Control/Lens/Internal/Indexed.hs
+++ b/src/Control/Lens/Internal/Indexed.hs
@@ -66,7 +66,7 @@
 class
   ( Choice p, Corepresentable p, Comonad (Corep p), Traversable (Corep p)
   , Strong p, Representable p, Monad (Rep p), MonadFix (Rep p), Distributive (Rep p)
-  , ArrowLoop p, ArrowApply p, ArrowChoice p
+  , Costrong p, ArrowLoop p, ArrowApply p, ArrowChoice p
   ) => Conjoined p where
 
   -- | 'Conjoined' is strong enough to let us distribute every 'Conjoined'
@@ -155,6 +155,11 @@
   ( #. ) _ = coerce'
   {-# INLINE ( #. ) #-}
 #endif
+
+instance Costrong (Indexed i) where
+  unfirst (Indexed iadbd) = Indexed $ \i a -> let
+      (b, d) = iadbd i (a, d)
+    in b
 
 instance Sieve (Indexed i) ((->) i) where
   sieve = flip . runIndexed
diff --git a/src/Control/Lens/Reified.hs b/src/Control/Lens/Reified.hs
--- a/src/Control/Lens/Reified.hs
+++ b/src/Control/Lens/Reified.hs
@@ -182,6 +182,9 @@
   type Rep ReifiedGetter = Identity
   tabulate f = Getter $ to (runIdentity . f)
 
+instance Costrong ReifiedGetter where
+  unfirst l = Getter $ to $ unfirst $ view (runGetter l)
+
 instance Conjoined ReifiedGetter
 
 instance Strong ReifiedGetter where
