diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 1.0.4.1
+
+- Support OneTuple-0.4
+
 # 1.0.4
 
 - Depend on `data-byte-array` to provide `Data.Array.Byte` instance
diff --git a/binary-orphans.cabal b/binary-orphans.cabal
--- a/binary-orphans.cabal
+++ b/binary-orphans.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.12
 name:               binary-orphans
-version:            1.0.4
+version:            1.0.4.1
 synopsis:           Compatibility package for binary; provides instances
 category:           Data, Binary, Parsing, Compatibility
 description:
@@ -28,6 +28,7 @@
    || ==9.0.2
    || ==9.2.7
    || ==9.4.4
+   || ==9.6.1
 
 extra-source-files: CHANGELOG.md
 
@@ -55,7 +56,7 @@
     build-depends: semigroups >=0.18.5 && <0.20.1
 
   if !impl(ghc >=9.2)
-    build-depends: OneTuple >=0.3 && <0.4
+    build-depends: OneTuple >=0.3 && <0.5
 
   if impl(ghc >=8.0 && <9.4)
     build-depends: data-array-byte >=0.1.0.1 && <0.2
@@ -70,7 +71,7 @@
       base
     , binary
     , binary-orphans
-    , OneTuple              >=0.3      && <0.4
+    , OneTuple              >=0.3      && <0.5
     , QuickCheck            >=2.13.1   && <2.15
     , quickcheck-instances  >=0.3.28   && <0.4
     , tagged                >=0.8.6    && <0.8.7
diff --git a/src/Data/Binary/Orphans.hs b/src/Data/Binary/Orphans.hs
--- a/src/Data/Binary/Orphans.hs
+++ b/src/Data/Binary/Orphans.hs
@@ -31,11 +31,19 @@
 import           GHC.Fingerprint       (Fingerprint (..))
 import           Numeric.Natural       (Natural)
 
-#if MIN_VERSION_base(4,16,0)
-import Data.Tuple (Solo (..))
+#if MIN_VERSION_base(4,18,0)
+import Data.Tuple (Solo (MkSolo))
+#elif MIN_VERSION_base(4,16,0)
+import Data.Tuple (Solo (Solo))
+#define MkSolo Solo
 #else
-import Data.Tuple.Solo (Solo (..))
+#if MIN_VERSION_OneTuple(0,4,0)
+import Data.Tuple.Solo (Solo (MkSolo))
+#else
+import Data.Tuple.Solo (Solo (Solo))
+#define MkSolo Solo
 #endif
+#endif
 
 #if MIN_VERSION_base(4,9,0)
 import Data.Array.Byte (ByteArray (..), MutableByteArray (..))
@@ -348,8 +356,8 @@
 
 -- | @since 1.0.2
 instance Binary a => Binary (Solo a) where
-  put (Solo x) = put x
-  get = fmap Solo get
+  put (MkSolo x) = put x
+  get = fmap MkSolo get
 
 #if MIN_VERSION_base(4,9,0)
 -- | @since 1.0.3
