WindowFind and WindowExpertName

 
int window = WindowFind( WindowExpertName() );

This should return the current window used by an indicator, right? What if there are two indicators in seperate windows with the same name? It always returns the first window.

Can there be a new function WindowCurrent(), that always returns the correct window for an indicator? Or some other way of adding objects to the window that contains an indicator when there can be multiple copies of that indicator?
 
Also another problem:

int window = WindowFind( WindowExpertName() );

sometimes returns window=-1 :(
 
WindowFind searches subwindow by indicator short name for example "MACD(12,26,9)"