diff --git a/src/webengine/ui_delegates_manager.cpp b/src/webengine/ui_delegates_manager.cpp
index 12474a1f18645298749fcfdc06147891c68cafb5..573d5018b8ebca733b3374e173d704d63166781b 100644
--- a/src/webengine/ui_delegates_manager.cpp
+++ b/src/webengine/ui_delegates_manager.cpp
@@ -238,7 +238,7 @@ void UIDelegatesManager::addMenuSeparator(QObject *menu)
     sep->setParent(menu);
 
     QQmlListReference entries(menu, defaultPropertyName(menu), qmlEngine(m_view));
-    if (entries.isValid())
+    if (entries.isValid() && entries.count() > 0)
         entries.append(sep);
 }
 
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 20a0297cd7a2f5be5354a2b104eaa57958302645..6b91bd22161e4adb78850836d34190d55aad54d4 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -2350,7 +2350,8 @@ void QContextMenuBuilder::addMenuItem(ContextMenuItem menuItem)
         }
         return;
     case ContextMenuItem::Separator:
-        m_menu->addSeparator();
+        if (!m_menu->isEmpty())
+            m_menu->addSeparator();
         return;
     }
     action->setEnabled(isMenuItemEnabled(menuItem));