diff --git a/Cargo.lock b/Cargo.lock
index 711a6c373d67003e7070a7432318f594d3c0cef4..cc8ec44f871672cb0bf73069ed50f6865116eae2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -239,8 +239,8 @@ dependencies = [
 
 [[package]]
 name = "rustmex"
-version = "0.6.4"
-source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=243a4c8e73303f578985059ea7005c73f31d1e41#243a4c8e73303f578985059ea7005c73f31d1e41"
+version = "0.6.3"
+source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1#9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1"
 dependencies = [
  "cfg-if",
  "more-asserts",
@@ -256,7 +256,7 @@ dependencies = [
 [[package]]
 name = "rustmex-entrypoint"
 version = "0.4.2"
-source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=243a4c8e73303f578985059ea7005c73f31d1e41#243a4c8e73303f578985059ea7005c73f31d1e41"
+source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1#9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1"
 dependencies = [
  "quote",
  "syn 1.0.109",
@@ -265,7 +265,7 @@ dependencies = [
 [[package]]
 name = "rustmex_core"
 version = "0.3.0"
-source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=243a4c8e73303f578985059ea7005c73f31d1e41#243a4c8e73303f578985059ea7005c73f31d1e41"
+source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1#9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1"
 dependencies = [
  "num-complex",
 ]
@@ -273,7 +273,7 @@ dependencies = [
 [[package]]
 name = "rustmex_interleaved_complex"
 version = "0.2.0"
-source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=243a4c8e73303f578985059ea7005c73f31d1e41#243a4c8e73303f578985059ea7005c73f31d1e41"
+source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1#9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1"
 dependencies = [
  "ndarray",
  "num-complex",
@@ -283,7 +283,7 @@ dependencies = [
 [[package]]
 name = "rustmex_matlab800"
 version = "0.1.2"
-source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=243a4c8e73303f578985059ea7005c73f31d1e41#243a4c8e73303f578985059ea7005c73f31d1e41"
+source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1#9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1"
 dependencies = [
  "num-complex",
  "rustmex_core",
@@ -292,7 +292,7 @@ dependencies = [
 [[package]]
 name = "rustmex_separated_complex"
 version = "0.2.0"
-source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=243a4c8e73303f578985059ea7005c73f31d1e41#243a4c8e73303f578985059ea7005c73f31d1e41"
+source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1#9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1"
 dependencies = [
  "ndarray",
  "num-complex",
diff --git a/Cargo.toml b/Cargo.toml
index 5895baf817cf34bde93fc1d6146e384d98e13854..9d291184c4c6bea508d951671f0a85f4595c1b00 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -19,7 +19,7 @@ thiserror = "1"
 
 [dependencies.rustmex]
 git = "ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git"
-rev = "243a4c8e73303f578985059ea7005c73f31d1e41"
+rev = "9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1"
 # For more information on how to use SSH with Cargo, see:
 # https://doc.rust-lang.org/cargo/appendix/git-authentication.html#ssh-authentication
 # https://stackoverflow.com/questions/31704573/is-it-possible-to-have-cargo-fetch-dependencies-from-a-private-remote-git
diff --git a/src/error.rs b/src/error.rs
index 10300ca4ffe9e9b7cc6fdc65a4b3db291ee41073..c56a64ff55b51e2e7c51c95634901201304ab2ac 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -98,9 +98,9 @@ pub enum Error {
     #[error("Parse error")]
     Parse,
     #[error("Matlab error: {0}")]
-    Matlab(#[from] rustmex::FromMatlabError<MxArray>),
+    Matlab(rustmex::FromMatlabError<MxArray>),
     #[error("{0}")]
-    Rustmex(#[from] rustmex::Error),
+    Rustmex(String),
     #[error("Return type cannot be assigned")]
     ReturnType,
     #[error("Serial port is not open")]
@@ -133,7 +133,7 @@ impl Error {
             Error::Channel(_) => "serialbridge:channel_error",
             Error::Parse => "serialbridge:parse_error",
             Error::Matlab(_) => "serialbridge:matlab_error",
-            Error::Rustmex(err) => err.id(),
+            Error::Rustmex(s) => s.split('&').next().unwrap_or("serialbridge:rustmex_error"),
             Error::ReturnType => "serialbridge:invalid_output",
             Error::SerialNotOpen => "serialbridge:serial_error",
         }
@@ -155,3 +155,11 @@ impl From<FromMatlabError<&mxArray>> for Error {
         err.into()
     }
 }
+
+impl From<rustmex::Error> for Error {
+    fn from(err: rustmex::Error) -> Self {
+        let id = err.id().to_owned();
+        let msg = err.to_string();
+        Error::Rustmex(format!("{}&{}", id, msg))
+    }
+}