Thanks for the comments. I managed to get it working, and it did turn out to be a timing issue. The application was attempting to change a listbox control as each character was typed. As you suggested, I sent each character and then paused .5s and low and behold it started working. After testing, I determined I could send it all at once if I waited a second afterwards. I also changed the control references from the number version to the classNN and that seems easier. The working code is as follows: Func nroute_route_address($numeric, $alpha, $city, $prov) Send("!RA") WinActivate("Find Places") ControlClick("Find Places","","Button3") Sleep(200) ControlFocus("","","Edit1") Send($numeric) ControlFocus("","","Edit2") Send($city) Sleep(500) Send("{TAB}") Send($prov) Sleep(500) Send("{TAB}") ControlClick("","","Button1") WinWait("Select Street") ControlSetText("","","Edit2","1") ControlFocus("","","Edit1") Send($alpha) Sleep(1000) Send("{ENTER}") Sleep(200) ControlClick("","","Button2") For $i = 1 to 5 Sleep(500) if(ControlCommand ("Find Places", "", "Button20", "IsEnabled", "")) Then $selected = ControlListView ("","","SysListView321","GetText",ControlListView ("","","SysListView321","GetSelected")) OSD($selected,2000) ControlClick("Find Places","","Button20") Return 1 EndIf Next MsgBox(48,"No Address Found!", "No Address Found!", 2) ControlClick("","","Button21") Return 0 EndFunc