diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index 15a688e97..7d2926396 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -1255,11 +1255,19 @@ func (tx *Transaction) doInsert(operation *Operation) (ret *TxErr) { node.FirstChild.InsertAfter(remain) } } else { - for i := len(remains) - 1; 0 <= i; i-- { - remain := remains[i] - node.PrependChild(remain) + if !node.IsContainerBlock() { + for i := len(remains) - 1; 0 <= i; i-- { + remain := remains[i] + node.InsertAfter(remain) + } + node.InsertAfter(insertedNode) + } else { + for i := len(remains) - 1; 0 <= i; i-- { + remain := remains[i] + node.PrependChild(remain) + } + node.PrependChild(insertedNode) } - node.PrependChild(insertedNode) } } }