+ } else {
+ DictionaryEntry de = (DictionaryEntry) expression_or_block;
+ ArrayList var_list = (ArrayList) de.Value;
+ ArrayList target_var_list = new ArrayList (var_list.Count);
+
+ foreach (DictionaryEntry de_variable in var_list)
+ target_var_list.Add (new DictionaryEntry (
+ ((Expression) de_variable.Key).Clone (clonectx),
+ ((Expression) de_variable.Value).Clone (clonectx)));
+
+ target.expression_or_block = new DictionaryEntry (
+ ((Expression) de.Key).Clone (clonectx),
+ target_var_list);
+ }