diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # Changelog for dbus-menu
 
+## 0.1.1.1
+
+* Fix "menu already attached" GTK warning by removing redundant
+  `menuAttachToWidget` call on submenus (superseded by `menuItemSetSubmenu`)
+
 ## 0.1.1.0
 
 * Expand module exports (DBusMenu, DBusMenu.Client, DBusMenu.Client.Util)
diff --git a/dbus-menu.cabal b/dbus-menu.cabal
--- a/dbus-menu.cabal
+++ b/dbus-menu.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           dbus-menu
-version:        0.1.1.0
+version:        0.1.1.1
 synopsis:       A Haskell implementation of the DBusMenu protocol
 description:    Haskell client for the com.canonical.dbusmenu DBus interface, providing GTK3 menu construction from DBusMenu services.
 category:       System
diff --git a/src/DBusMenu.hs b/src/DBusMenu.hs
--- a/src/DBusMenu.hs
+++ b/src/DBusMenu.hs
@@ -213,7 +213,7 @@
 -- * @dbusmenu-menu@ (base menu class)
 -- * @dbusmenu-submenu@
 buildGtkMenuItem :: Client -> BusName -> ObjectPath -> Gtk.Menu -> LayoutNode -> IO Gtk.MenuItem
-buildGtkMenuItem client dest path parentMenu node = do
+buildGtkMenuItem client dest path _parentMenu node = do
   let isChecked = menuItemToggleState node == Just 1
   item <- case menuItemType node of
     Just "separator" -> do
@@ -276,12 +276,6 @@
       Gtk.widgetSetName submenu (T.pack ("dbusmenu-submenu-" <> show (lnId node)))
       submenuW <- Gtk.toWidget submenu
       addCssClass submenuW "dbusmenu-submenu"
-      -- Attach the submenu to the parent menu widget so it inherits the
-      -- same CSS parent chain (via menuAttachToWidget).  Without this,
-      -- the submenu popup window is CSS-isolated and high-specificity
-      -- rules like .outer-pad.sni-tray menu menuitem * don't reach it.
-      parentMenuW <- Gtk.toWidget parentMenu
-      Gtk.menuAttachToWidget submenu parentMenuW Nothing
       -- Populate with the eagerly-fetched layout so submenus are usable even if
       -- the service doesn't support/require lazy updates.
       populateGtkMenu client dest path submenu node
