diff --git a/sdbusplus/bus.hpp.in b/sdbusplus/bus.hpp.in
index 66961ee..587d10b 100644
--- a/sdbusplus/bus.hpp.in
+++ b/sdbusplus/bus.hpp.in
@@ -155,6 +155,22 @@
         return _bus.release();
     }
 
+    /** @brief Flush all of the outstanding work on the bus. */
+    void flush()
+    {
+        int r = _intf->sd_bus_flush(_bus.get());
+        if (r < 0)
+        {
+            throw exception::SdBusError(-r, "sd_bus_flush");
+        }
+    }
+
+    /** @brief Close the connection to the dbus daemon. */
+    void close()
+    {
+        _intf->sd_bus_close(_bus.get());
+    }
+
     /** @brief Wait for new dbus messages or signals.
      *
      *  @param[in] timeout_us - Timeout in usec.
diff --git a/sdbusplus/sdbus.hpp b/sdbusplus/sdbus.hpp
index f5d732f..acc5f3f 100644
--- a/sdbusplus/sdbus.hpp
+++ b/sdbusplus/sdbus.hpp
@@ -139,6 +139,9 @@
     virtual sd_bus* sd_bus_unref(sd_bus* bus) = 0;
     virtual sd_bus* sd_bus_flush_close_unref(sd_bus* bus) = 0;
 
+    virtual int sd_bus_flush(sd_bus* bus) = 0;
+    virtual void sd_bus_close(sd_bus* bus) = 0;
+
     virtual int sd_bus_wait(sd_bus* bus, uint64_t timeout_usec) = 0;
 };
 
@@ -456,6 +459,16 @@
         return ::sd_bus_flush_close_unref(bus);
     }
 
+    int sd_bus_flush(sd_bus* bus) override
+    {
+        return ::sd_bus_flush(bus);
+    }
+
+    void sd_bus_close(sd_bus* bus) override
+    {
+        ::sd_bus_close(bus);
+    }
+
     int sd_bus_wait(sd_bus* bus, uint64_t timeout_usec) override
     {
         return ::sd_bus_wait(bus, timeout_usec);
diff --git a/sdbusplus/test/sdbus_mock.hpp b/sdbusplus/test/sdbus_mock.hpp
index 7264482..36a8598 100644
--- a/sdbusplus/test/sdbus_mock.hpp
+++ b/sdbusplus/test/sdbus_mock.hpp
@@ -107,6 +107,8 @@
     MOCK_METHOD3(sd_bus_send, int(sd_bus*, sd_bus_message*, uint64_t*));
     MOCK_METHOD1(sd_bus_unref, sd_bus*(sd_bus*));
     MOCK_METHOD1(sd_bus_flush_close_unref, sd_bus*(sd_bus*));
+    MOCK_METHOD1(sd_bus_flush, int(sd_bus*));
+    MOCK_METHOD1(sd_bus_close, void(sd_bus*));
     MOCK_METHOD2(sd_bus_wait, int(sd_bus*, uint64_t));
 };
 
