Edit: Found out the cause, I wasn't freeing memory on a string used in the profile property changing method. Freeing the memory fixed the problem. Rookie noob programmer mistake heh. I'm working with a modified RTSS Shared Memory wrapper for C# and encountering a strange bug. I modified the wrapper to allow me to edit profiles. While I'm able to change profile properties after any property has been changed a second time the overlay shows up on other graphical windows that are not set up to be hooked in RTSS. Changing a single profile property causes no issues. However when I change a property again for some reason the overlay shows up on other windows. I'm at a loss for what is causing this and how to even debug it, any help greatly appreciated. Edit: Removing the LoadProfile method stops the bug from happening, is there any reason why loading a profile is causing this issue?