diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/src/OdooEditor.js b/addons/web_editor/static/src/js/editor/odoo-editor/src/OdooEditor.js
index 43628662ff5..6d72bc3c92d 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/src/OdooEditor.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/src/OdooEditor.js
@@ -2066,7 +2066,7 @@ export class OdooEditor extends EventTarget {
doJoin &&
next &&
!(next.previousSibling && next.previousSibling === joinWith) &&
- this.editable.contains(next)
+ this.editable.contains(next) && (closestElement(joinWith,'TD') === closestElement(next, 'TD'))
) {
const restore = preserveCursor(this.document);
this.observerFlush();
diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/editor.test.js b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/editor.test.js
index c93a7f1f15a..33923d69590 100644
--- a/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/editor.test.js
+++ b/addons/web_editor/static/src/js/editor/odoo-editor/test/spec/editor.test.js
@@ -1039,6 +1039,27 @@ X[]
),
});
});
+ it('should delete the list item', async () => {
+ await testEditor(BasicEditor, {
+ contentBefore: unformat(
+ `
`,
+ ),
+ stepFunction: deleteForward,
+ contentAfter: unformat(
+ ``,
+ ),
+ });
+ });
it('should delete an image that is displayed as a block', async () => {
await testEditor(BasicEditor, {
contentBefore: unformat(`a[b
![]()
c]d
`),