import { Component, ComponentClass, MountedComponent } from '../component'
-import { VNode, Slots } from '../vdom'
+import { VNode, Slots, cloneVNode } from '../vdom'
import { VNodeFlags } from '../flags'
type MatchPattern = string | RegExp | string[] | RegExp[]
const { cache, keys } = this
const key = vnode.key == null ? comp : vnode.key
const cached = cache.get(key)
+
+ // clone vnode if it's reused because we are going to mutate its flags
+ if (vnode.el) {
+ vnode = cloneVNode(vnode)
+ }
cache.set(key, vnode)
if (cached) {