private void ClearReferences()
{
ArrayList oldList = _referencedObjects;
_referencedObjects = new ArrayList();
for(int i = 0; i < oldList.Count; i++) {
WeakReference wr = (WeakReference) oldList[i];
if (wr.IsAlive) {
ClearReference(wr.Target);
}
}
}