diff --git a/src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeScreensaverManager.cs b/src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeScreensaverManager.cs
index 78b24fe..36d9879 100644
--- a/src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeScreensaverManager.cs
+++ b/src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeScreensaverManager.cs
@@ -33,36 +33,45 @@ using Banshee.PlatformServices;
 
 namespace Banshee.GnomeBackend
 {
-    [Interface("org.gnome.ScreenSaver")]
-    internal interface IGnomeScreensaver
+    [Flags]
+    enum InhibitFlag
     {
-        uint Inhibit (string application_name, string reason);
+        InhibitLoggingOut = 1,
+        InhibitUserSwitching = 2,
+        InhibitSuspending = 4,
+        InhibitIdle = 8,
+    }
+
+    [Interface("org.gnome.SessionManager")]
+    internal interface IGnomeSessionManager
+    {
+        uint Inhibit (string app_id, uint toplevel_xid, string reason, uint flags);
         void UnInhibit (uint cookie);
     }
 
-    class GnomeScreensaverManager : IScreensaverManager
+    class GnomeSessionManager : IScreensaverManager
     {
-        const string DBUS_INTERFACE = "org.gnome.ScreenSaver";
-        const string DBUS_PATH = "/org/gnome/ScreenSaver";
+        const string DBUS_INTERFACE = "org.gnome.SessionManager";
+        const string DBUS_PATH = "/org/gnome/SessionManager";
 
-        IGnomeScreensaver manager;
+        IGnomeSessionManager manager;
         uint? cookie;
 
-        public GnomeScreensaverManager ()
+        public GnomeSessionManager ()
         {
             if (Manager == null) {
-                Hyena.Log.Information ("GNOME screensaver service not found");
+                Hyena.Log.Information ("GNOME session service not found");
             }
         }
 
-        private IGnomeScreensaver Manager {
+        private IGnomeSessionManager Manager {
             get {
                 if (manager == null) {
                     if (!Bus.Session.NameHasOwner (DBUS_INTERFACE)) {
                         return null;
                     }
 
-                    manager = Bus.Session.GetObject<IGnomeScreensaver> (DBUS_INTERFACE, new ObjectPath (DBUS_PATH));
+                    manager = Bus.Session.GetObject<IGnomeSessionManager> (DBUS_INTERFACE, new ObjectPath (DBUS_PATH));
 
                     if (manager == null) {
                         Hyena.Log.ErrorFormat ("The {0} object could not be located on the DBus interface {1}",
@@ -78,7 +87,12 @@ namespace Banshee.GnomeBackend
         {
             try {
                 if (!cookie.HasValue && Manager != null) {
-                    cookie = Manager.Inhibit ("Banshee", Catalog.GetString ("Fullscreen video playback active"));
+                    //TODO Get x window id to replace 0 in inhibit function
+                    //Banshee.Gui.GtkElementsService elements_service = Banshee.ServiceStack.ServiceManager.Get<Banshee.Gui.GtkElementsService> ();
+                    //elements_service.PrimaryWindow.GdkWindow.
+
+
+                    cookie = Manager.Inhibit ("Banshee", 0, Catalog.GetString ("Fullscreen video playback active"), InhibitFlag.InhibitIdle);
                 }
             } catch (Exception e) {
                 if (!logged_error) {
