a bug with deepcopy function


I am using max 2008 for creating complex graphs.
I may be missing something but it seems there's a bug with the deepcopy function for copying arrays consisting of structured components with inner array components.
Executing the following example script shows that the array 'a' changes though changes are made only to array 'b'.
Is this known? Does anyone knows a workaround for this problem?

struct str (arr)
h = str arr:#(1,2,3)
append a h
h = str arr:#(4,5,6)
append a h
b=deepcopy a

append b[2].arr 7
format "a:%\n" a

output is:
a:#((str arr:#(1, 2, 3)), (str arr:#(4, 5, 6, 7)))