diff --git a/indra/viewer_components/manager/InstallerUserMessage.py b/indra/viewer_components/manager/InstallerUserMessage.py
index 0ab7eafc780be7b27b549419d2f5e200a7a0e10a..2ec71df03007462565cfc6a03571a95ec25969f9 100644
--- a/indra/viewer_components/manager/InstallerUserMessage.py
+++ b/indra/viewer_components/manager/InstallerUserMessage.py
@@ -58,8 +58,8 @@ def __init__(self, text="", title="", width=500, height=200, icon_name = None, i
         self.config(background = 'black')
         # background="..." doesn't work on MacOS for radiobuttons or progress bars
         # http://tinyurl.com/tkmacbuttons
-        ttk.Style().configure('Linden.TLabel', foreground='#487A7B', background='black')
-        ttk.Style().configure('Linden.TButton', foreground='#487A7B', background='black')
+        ttk.Style().configure('Linden.TLabel', foreground=InstallerUserMessage.linden_green, background='black')
+        ttk.Style().configure('Linden.TButton', foreground=InstallerUserMessage.linden_green, background='black')
         ttk.Style().configure("black.Horizontal.TProgressbar", foreground=InstallerUserMessage.linden_green, background='black')
 
         #This bit of configuration centers the window on the screen
@@ -136,8 +136,8 @@ def basic_message(self, message):
         self.mainloop()
 
     def binary_choice_message(self, message, true = 'Yes', false = 'No'):
-        #one: first option, returns True
-        #two: second option, returns False
+        #true: first option, returns True
+        #false: second option, returns False
         #usage is kind of opaque and relies on this object persisting after the window destruction to pass back choice
         #usage:
         #   frame = InstallerUserMessage.InstallerUserMessage( ... )
@@ -164,6 +164,38 @@ def binary_choice_message(self, message, true = 'Yes', false = 'No'):
         self.update()
         self.mainloop()
 
+    def trinary_choice_message(self, message, one = 1, two = 2, three = 3):
+        #one: first option, returns 1
+        #two: second option, returns 2
+        #three: third option, returns 3
+        #usage is kind of opaque and relies on this object persisting after the window destruction to pass back choice
+        #usage:
+        #   frame = InstallerUserMessage.InstallerUserMessage( ... )
+        #   frame = frame.binary_choice_message( ... )
+        #   (wait for user to click)
+        #   value = frame.choice.get()
+
+        self.text_label = tk.Label(text = message)
+        #command registers the callback to the method named.  We want the frame to go away once clicked.
+        self.button_one = ttk.Radiobutton(text = one, variable = self.choice, value = 1, 
+            command = self._delete_window, style = 'Linden.TButton')
+        self.button_two = ttk.Radiobutton(text = two, variable = self.choice, value = 2, 
+            command = self._delete_window, style = 'Linden.TButton')
+        self.button_three = ttk.Radiobutton(text = three, variable = self.choice, value = 3, 
+            command = self._delete_window, style = 'Linden.TButton')
+        self.set_colors(self.text_label)
+        self.set_colors(self.image_label)
+        #pad, direction and weight are all experimentally derived by retrying various values
+        self.image_label.grid(row = 1, column = 1, rowspan = 4, sticky = 'W')
+        self.text_label.grid(row = 1, column = 2, rowspan = 4, padx = 5)
+        self.button_one.grid(row = 1, column = 3, sticky = 'W', pady = 5)
+        self.button_two.grid(row = 2, column = 3, sticky = 'W', pady = 5)
+        self.button_three.grid(row = 3, column = 3, sticky = 'W', pady = 5)
+        self.auto_resize(row_count = 3, column_count = 3, heavy_column = 3)
+        #self.button_two.deselect()
+        self.update()
+        self.mainloop()
+
     def progress_bar(self, message = None, size = 0, interval = 100, pb_queue = None):
         #Best effort attempt at a real progress bar
         #  This is what Tk calls "determinate mode" rather than "indeterminate mode"
@@ -248,6 +280,13 @@ def set_and_check(frame, value):
     print frame3.choice.get()
     sys.stdout.flush()
 
+    #trinary choice test.  User destroys window when they select.
+    frame3a = InstallerUserMessage(text = "Something in the way she knows....", title = "Beatles Quotes for 200", icon_name="head-sl-logo.gif")
+    frame3a.trinary_choice_message(message = "And all I have to do is think of her.", 
+        one = "Don't want to leave her now", two = 'You know I believe and how', three = 'John is Dead')
+    print frame3a.choice.get()
+    sys.stdout.flush()
+
     #progress bar
     queue = Queue.Queue()
     thread = ThreadedClient(queue)
@@ -257,9 +296,4 @@ def set_and_check(frame, value):
     frame4 = InstallerUserMessage(text = "Something in the way she knows....", title = "Beatles Quotes for 300", icon_name="head-sl-logo.gif")
     frame4.progress_bar(message = "You're asking me will my love grow", size = 100, pb_queue = queue)
     print "frame defined"
-    
     frame4.mainloop()
-
-
-
-
diff --git a/indra/viewer_components/manager/SL_Launcher b/indra/viewer_components/manager/SL_Launcher
index fd7d00be0fb818787263804b6e4d780ed7cdc18e..6eaccc8b13e182c9ee30de37157b27ed5fc43e88 100755
--- a/indra/viewer_components/manager/SL_Launcher
+++ b/indra/viewer_components/manager/SL_Launcher
@@ -34,7 +34,6 @@ elif sys.platform.startswith("win") or sys.platform.startswith("cyg"):
    elif os.path.isfile(os.path.join(cwd,"SecondLifeTest.exe")):
       executable_name = "SecondLifeTest.exe"
    else:
-      #unsupported by prototypeS
       sys.exit("Can't find Windows viewer binary")
 elif sys.platform.startswith("linux"):
    executable_name = "secondlife"