diff --git a/include/sdbusplus/message.hpp b/include/sdbusplus/message.hpp
index 95d61ec..dafbcfb 100644
--- a/include/sdbusplus/message.hpp
+++ b/include/sdbusplus/message.hpp
@@ -2,6 +2,7 @@
 
 #include <systemd/sd-bus.h>
 
+#include <sdbusplus/exception.hpp>
 #include <sdbusplus/message/append.hpp>
 #include <sdbusplus/message/native_types.hpp>
 #include <sdbusplus/message/read.hpp>
@@ -310,6 +311,24 @@
 
     /** @brief Create a 'method_error' type message from an existing message.
      *
+     *  @param[in] e - The exception we are returning
+     *  @return method-return message.
+     */
+    message new_method_error(const sdbusplus::exception::exception& e)
+    {
+        msgp_t reply = nullptr;
+        int r = _intf->sd_bus_message_new_method_error(
+            this->get(), &reply, e.name(), e.description());
+        if (r < 0)
+        {
+            throw exception::SdBusError(-r, "sd_bus_message_new_method_error");
+        }
+
+        return message(reply, _intf, std::false_type());
+    }
+
+    /** @brief Create a 'method_error' type message from an existing message.
+     *
      *  @param[in] error - integer error number
      *  @param[in] e - optional pointer to preformatted sd_bus_error
      *  @return method-error message.
diff --git a/include/sdbusplus/sdbus.hpp b/include/sdbusplus/sdbus.hpp
index 5a73309..b30e989 100644
--- a/include/sdbusplus/sdbus.hpp
+++ b/include/sdbusplus/sdbus.hpp
@@ -111,6 +111,11 @@
     virtual int sd_bus_message_new_method_return(sd_bus_message* call,
                                                  sd_bus_message** m) = 0;
 
+    virtual int sd_bus_message_new_method_error(sd_bus_message* call,
+                                                sd_bus_message** m,
+                                                const char* name,
+                                                const char* description) = 0;
+
     virtual int sd_bus_message_new_method_errno(sd_bus_message* call,
                                                 sd_bus_message** m, int error,
                                                 const sd_bus_error* p) = 0;
@@ -398,6 +403,14 @@
         return ::sd_bus_message_new_method_return(call, m);
     }
 
+    int sd_bus_message_new_method_error(sd_bus_message* call,
+                                        sd_bus_message** m, const char* name,
+                                        const char* description) override
+    {
+        return ::sd_bus_message_new_method_errorf(call, m, name, "%s",
+                                                  description);
+    }
+
     int sd_bus_message_new_method_errno(sd_bus_message* call,
                                         sd_bus_message** m, int error,
                                         const sd_bus_error* p) override
diff --git a/include/sdbusplus/test/sdbus_mock.hpp b/include/sdbusplus/test/sdbus_mock.hpp
index b88b120..ff007a4 100644
--- a/include/sdbusplus/test/sdbus_mock.hpp
+++ b/include/sdbusplus/test/sdbus_mock.hpp
@@ -85,6 +85,10 @@
     MOCK_METHOD2(sd_bus_message_new_method_return,
                  int(sd_bus_message*, sd_bus_message**));
 
+    MOCK_METHOD4(sd_bus_message_new_method_error,
+                 int(sd_bus_message* call, sd_bus_message** m, const char* name,
+                     const char* description));
+
     MOCK_METHOD4(sd_bus_message_new_method_errno,
                  int(sd_bus_message* call, sd_bus_message** m, int error,
                      const sd_bus_error* p));
