diff --git a/src/meson.build b/src/meson.build
index c41f6bf..fb47688 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -20,7 +20,7 @@
 endif
 
 sdeventplus_deps = [
-  dependency('libsystemd', version: '>=239'),
+  dependency('libsystemd', version: '>=240'),
   dependency('stdplus', fallback: ['stdplus', 'stdplus']),
   function2_dep,
 ]
diff --git a/src/sdeventplus/internal/sdevent.cpp b/src/sdeventplus/internal/sdevent.cpp
index 26b2f80..608dbcf 100644
--- a/src/sdeventplus/internal/sdevent.cpp
+++ b/src/sdeventplus/internal/sdevent.cpp
@@ -261,6 +261,17 @@
     return ::sd_event_source_get_destroy_callback(source, callback);
 }
 
+int SdEventImpl::sd_event_source_set_floating(sd_event_source* source,
+                                              int b) const
+{
+    return ::sd_event_source_set_floating(source, b);
+}
+
+int SdEventImpl::sd_event_source_get_floating(sd_event_source* source) const
+{
+    return ::sd_event_source_get_floating(source);
+}
+
 SdEventImpl sdevent_impl;
 
 } // namespace internal
diff --git a/src/sdeventplus/internal/sdevent.hpp b/src/sdeventplus/internal/sdevent.hpp
index 46486f7..ceab0fe 100644
--- a/src/sdeventplus/internal/sdevent.hpp
+++ b/src/sdeventplus/internal/sdevent.hpp
@@ -111,6 +111,9 @@
         sd_event_source* source, sd_event_destroy_t callback) const = 0;
     virtual int sd_event_source_get_destroy_callback(
         sd_event_source* source, sd_event_destroy_t* callback) const = 0;
+    virtual int sd_event_source_set_floating(sd_event_source* source,
+                                             int b) const = 0;
+    virtual int sd_event_source_get_floating(sd_event_source* source) const = 0;
 };
 
 /** @class SdEventImpl
@@ -220,6 +223,9 @@
         sd_event_source* source, sd_event_destroy_t callback) const override;
     int sd_event_source_get_destroy_callback(
         sd_event_source* source, sd_event_destroy_t* callback) const override;
+    int sd_event_source_set_floating(sd_event_source* source,
+                                     int b) const override;
+    int sd_event_source_get_floating(sd_event_source* source) const override;
 };
 
 /** @brief Default instantiation of sd_event
diff --git a/src/sdeventplus/test/sdevent.hpp b/src/sdeventplus/test/sdevent.hpp
index 818c85d..13411e8 100644
--- a/src/sdeventplus/test/sdevent.hpp
+++ b/src/sdeventplus/test/sdevent.hpp
@@ -98,6 +98,9 @@
                        int(sd_event_source*, sd_event_destroy_t));
     MOCK_CONST_METHOD2(sd_event_source_get_destroy_callback,
                        int(sd_event_source*, sd_event_destroy_t*));
+    MOCK_CONST_METHOD2(sd_event_source_set_floating,
+                       int(sd_event_source*, int));
+    MOCK_CONST_METHOD1(sd_event_source_get_floating, int(sd_event_source*));
 };
 
 } // namespace test
