@lmr  I changed this line from list(set(self.keys()) & set(dict.keys())) to dict.keys(). As you said in last comment, the original update() of dict is updating data if key already exist in self, and adding data if it is a new key for self.

So, my last patch did not cover the second scenario. Please help to review it agian. Thanx