--- usr/local/share/wicd/curses/wicd-curses.py.orig
+++ usr/local/share/wicd/curses/wicd-curses.py
@@ -532,7 +532,10 @@
     def get_selected_profile(self):
         """Get the selected wired profile"""
         loc = self.get_focus()[1]
-        return self.theList[loc]
+        if len(self.theList) > loc:
+            return self.theList[loc]
+        else:
+            return slf.theList[-1]
 
 
 class AdHocDialog(Dialog2):
@@ -1153,9 +1156,10 @@
         if not ui._started:
             return False
 
-        input_data = ui.get_input_nonblocking()
+        ui.set_input_timeouts(max_wait=0)
+        input_data = ui.get_input()
         # Resolve any "alarms" in the waiting
-        self.handle_keys(input_data[1])
+        self.handle_keys(input_data)
 
         # Update the screen
         canvas = self.frame.render((self.size), True)
