diff --git a/gajim/gtk/contact_info.py b/gajim/gtk/contact_info.py
index 10981549002b25255175ca46cd20cd4c3eeb7c84..852129a2a917fde235e61e25c6749809a1f8e0c2 100644
--- a/gajim/gtk/contact_info.py
+++ b/gajim/gtk/contact_info.py
@@ -332,10 +332,15 @@ def _on_edit_name_toggled(self, widget: Gtk.ToggleButton) -> None:
         self._ui.name_entry.set_sensitive(active)
         if active:
             self._ui.name_entry.grab_focus()
+        else:
+            name = self._ui.name_entry.get_text()
+            if name == self.contact.name:
+                return
 
-        name = self._ui.name_entry.get_text()
-        self._client.get_module('Roster').set_item(self.contact.jid, name)
-        self._ui.contact_name_label.set_text(name)
+            assert isinstance(self.contact, BareContact)
+            self._client.get_module('Roster').set_item(
+                self.contact.jid, name, self.contact.groups)
+            self._ui.contact_name_label.set_text(name)
 
     def _on_name_entry_activate(self, _widget: Gtk.Entry) -> None:
         self._ui.edit_name_button.set_active(False)