diff --git a/src/render/qssgrendercontext.cpp b/src/render/qssgrendercontext.cpp
index 7377040df1e931e5ab807f0518dc328610e2ff96..eda5f5206354db5b2b76412a6827cb653cc26193 100644
--- a/src/render/qssgrendercontext.cpp
+++ b/src/render/qssgrendercontext.cpp
@@ -318,6 +318,16 @@ void QSSGRenderContext::setBlendEquation(QSSGRenderBlendEquationArgument inEquat
     m_backend->setBlendEquation(inEquations);
 }
 
+void QSSGRenderContext::resetBlendEquation(bool forceSet)
+{
+    const QSSGRenderBlendEquationArgument defaultBlendEqua;
+    if (!forceSet && m_hardwarePropertyContext.m_blendEquation == defaultBlendEqua)
+        return;
+
+    m_hardwarePropertyContext.m_blendEquation = defaultBlendEqua;
+    m_backend->setBlendEquation(defaultBlendEqua);
+}
+
 void QSSGRenderContext::setCullingEnabled(bool inEnabled, bool forceSet)
 {
     if (!forceSet && m_hardwarePropertyContext.m_cullingEnabled == inEnabled)
@@ -669,6 +679,9 @@ bool QSSGRenderContext::applyPreDrawProperties()
 
 void QSSGRenderContext::onPostDraw()
 {
+    // Reset to default blend equation if needed
+    resetBlendEquation();
+
     // reset input assembler binding
     m_backend->setInputAssembler(nullptr, nullptr);
     // Texture unit 0 is used for setting up and loading textures.
diff --git a/src/render/qssgrendercontext_p.h b/src/render/qssgrendercontext_p.h
index 5701d4b104f751ddb4ce27b14a2af0e50df99ff3..1dfb2c92a0e150aeccaad3acc08dfe29f41c23a6 100644
--- a/src/render/qssgrendercontext_p.h
+++ b/src/render/qssgrendercontext_p.h
@@ -343,6 +343,7 @@ public:
     {
         return m_hardwarePropertyContext.m_blendEquation;
     }
+    void resetBlendEquation(bool forceSet = false);
 
     void setCullingEnabled(bool inEnabled, bool forceSet = false);
     bool isCullingEnabled() const { return m_hardwarePropertyContext.m_cullingEnabled; }