--- a/Cargo.toml
+++ b/Cargo.toml
@@ -78,12 +78,7 @@
 version = "0.3"
 optional = true
 
-[dependencies.embedded-io-04]
-version = "0.4"
-optional = true
-package = "embedded-io"
-
-[dependencies.embedded-io-06]
+[dependencies.embedded-io]
 version = "0.6"
 optional = true
 package = "embedded-io"
@@ -110,13 +105,10 @@
 [features]
 alloc = [
     "serde/alloc",
-    "embedded-io-04?/alloc",
-    "embedded-io-06?/alloc",
+    "embedded-io/alloc",
 ]
 default = ["heapless-cas"]
-embedded-io = ["dep:embedded-io-04"]
-embedded-io-04 = ["dep:embedded-io-04"]
-embedded-io-06 = ["dep:embedded-io-06"]
+embedded-io = ["dep:embedded-io"]
 experimental-derive = ["postcard-derive"]
 heapless-cas = [
     "heapless",
--- a/src/eio.rs
+++ b/src/eio.rs
@@ -1,20 +1,4 @@
 // We disable all embedded-io versions but the most recent in docs.rs, because we use
 // --all-features which doesn't work with non-additive features.
-#[cfg(all(feature = "embedded-io-04", feature = "embedded-io-06", not(docsrs)))]
-compile_error!("Only one version of `embedded-io` must be enabled through features");
-
-#[cfg(all(feature = "embedded-io-04", not(docsrs)))]
-mod version_impl {
-    pub use embedded_io_04 as embedded_io;
-    pub use embedded_io_04::blocking::{Read, Write};
-}
-
-#[cfg(feature = "embedded-io-06")]
-mod version_impl {
-    pub use embedded_io_06 as embedded_io;
-    pub use embedded_io_06::{Read, Write};
-}
-
-// All versions should export the appropriate items
-#[cfg(any(feature = "embedded-io-04", feature = "embedded-io-06"))]
-pub use version_impl::{embedded_io, Read, Write};
+#[cfg(feature = "embedded-io")]
+pub use embedded_io::{Read, Write};
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -94,10 +94,10 @@
 #[cfg(feature = "heapless")]
 pub use ser::{to_vec, to_vec_cobs};
 
-#[cfg(any(feature = "embedded-io-04", feature = "embedded-io-06"))]
+#[cfg(feature = "embedded-io")]
 pub use ser::to_eio;
 
-#[cfg(any(feature = "embedded-io-04", feature = "embedded-io-06"))]
+#[cfg(feature = "embedded-io")]
 pub use de::from_eio;
 
 #[cfg(feature = "use-std")]
--- a/src/ser/flavors.rs
+++ b/src/ser/flavors.rs
@@ -251,7 +251,7 @@
 }
 
 /// Support for the [`embedded-io`](crate::eio::embedded_io) traits
-#[cfg(any(feature = "embedded-io-04", feature = "embedded-io-06"))]
+#[cfg(feature = "embedded-io")]
 pub mod eio {
 
     use super::Flavor;
--- a/src/ser/mod.rs
+++ b/src/ser/mod.rs
@@ -286,7 +286,7 @@
 /// to_eio("Hi!", ser).unwrap();
 /// assert_eq!(&buf[0..5], &[0x01, 0x03, b'H', b'i', b'!']);
 /// ```
-#[cfg(any(feature = "embedded-io-04", feature = "embedded-io-06"))]
+#[cfg(feature = "embedded-io")]
 pub fn to_eio<'b, T, W>(value: &'b T, writer: W) -> Result<W>
 where
     T: Serialize + ?Sized,
--- a/tests/loopback.rs
+++ b/tests/loopback.rs
@@ -210,10 +210,7 @@
     );
 }
 
-#[cfg(all(
-    any(feature = "embedded-io-04", feature = "embedded-io-06"),
-    feature = "alloc"
-))]
+#[cfg(any(feature = "embedded-io",feature = "alloc"))]
 #[test]
 fn std_eio_loopback() {
     use postcard::from_eio;
--- a/src/de/flavors.rs
+++ b/src/de/flavors.rs
@@ -191,8 +191,7 @@
 
 /// Support for [std::io] or `embedded-io` traits
 #[cfg(any(
-    feature = "embedded-io-04",
-    feature = "embedded-io-06",
+    feature = "embedded-io",
     feature = "use-std"
 ))]
 pub mod io {
@@ -242,7 +241,7 @@
     }
 
     /// Support for [`embedded_io`](crate::eio::embedded_io) traits
-    #[cfg(any(feature = "embedded-io-04", feature = "embedded-io-06"))]
+    #[cfg(any(feature = "embedded-io"))]
     pub mod eio {
         use super::super::Flavor;
         use super::SlidingBuffer;
--- a/src/de/mod.rs
+++ b/src/de/mod.rs
@@ -68,7 +68,7 @@
 }
 
 /// Deserialize a message of type `T` from a [`embedded_io`](crate::eio::embedded_io)::[`Read`](crate::eio::Read).
-#[cfg(any(feature = "embedded-io-04", feature = "embedded-io-06"))]
+#[cfg(feature = "embedded-io")]
 pub fn from_eio<'a, T, R>(val: (R, &'a mut [u8])) -> Result<(T, (R, &'a mut [u8]))>
 where
     T: Deserialize<'a>,
