diff --git a/src/core/instance/render-helpers/render-slot.js b/src/core/instance/render-helpers/render-slot.js
index 0d9e1af3fd..3eaff88252 100644
--- a/src/core/instance/render-helpers/render-slot.js
+++ b/src/core/instance/render-helpers/render-slot.js
@@ -15,7 +15,7 @@ export function renderSlot (
if (scopedSlotFn) { // scoped slot
props = props || {}
if (bindObject) {
- extend(props, bindObject)
+ props = extend(extend({}, bindObject), props)
}
return scopedSlotFn(props) || fallback
} else {
diff --git a/test/unit/features/component/component-scoped-slot.spec.js b/test/unit/features/component/component-scoped-slot.spec.js
index 9af53cd499..0a7923d993 100644
--- a/test/unit/features/component/component-scoped-slot.spec.js
+++ b/test/unit/features/component/component-scoped-slot.spec.js
@@ -36,7 +36,7 @@ describe('Component scoped slot', () => {
template: `