diff --git a/includes/install.core.inc b/includes/install.core.inc
index 1040bf3..1252325 100644
--- a/includes/install.core.inc
+++ b/includes/install.core.inc
@@ -1146,6 +1146,7 @@ function install_find_locales($profilename) {
  *   locale cannot be chosen automatically.
  */
 function install_select_locale(&$install_state) {
+          include_once DRUPAL_ROOT . '/includes/standard.inc';
   // Find all available locales.
   $profilename = $install_state['parameters']['profile'];
   $locales = install_find_locales($profilename);
@@ -1192,7 +1193,7 @@ function install_select_locale(&$install_state) {
         return $output;
       }
       // One language, but not an interactive installation. Assume the user
-      // knows what he is doing.
+      // knows what they are doing.
       $locale = current($locales);
       $install_state['parameters']['locale'] = $locale->name;
       return;
@@ -1234,21 +1235,38 @@ function install_select_locale(&$install_state) {
  * Form API array definition for language selection.
  */
 function install_select_locale_form($form, &$form_state, $locales, $profilename) {
+
   include_once DRUPAL_ROOT . '/includes/standard.inc';
+  include_once DRUPAL_ROOT . '/includes/locale.inc';
   $languages = standard_language_list();
+  $langlist = array();
+
   foreach ($locales as $locale) {
-    $name = $locale->langcode;
-    if (isset($languages[$name])) {
-      $name = $languages[$name][0] . (isset($languages[$name][1]) ? ' ' . st('(@language)', array('@language' => $languages[$name][1])) : '');
+    $langcode = $locale->langcode;
+
+    if (isset($languages[$langcode])) {
+      $localname = (isset($languages[$langcode][1])) ? $languages[$langcode][1] : $languages[$langcode][0];
+      $name = st('@language is my default language.', array('@language' => $localname), array('context' => $langcode) );
+    } else {
+     $name = st('@language is my default language.', array('@language' => $langcode), array('context' => $langcode) );
     }
-    $form['locale'][$locale->langcode] = array(
-      '#type' => 'radio',
-      '#return_value' => $locale->langcode,
-      '#default_value' => $locale->langcode == 'en' ? 'en' : '',
-      '#title' => $name . ($locale->langcode == 'en' ? ' ' . st('(built-in)') : ''),
-      '#parents' => array('locale')
-    );
+  	$langlist[$locale->langcode] = $name;
   }
+  
+  /* check current browser language, if none default to english
+  current bug with Safari and local_language_from_browser, check http://drupal.org/project/issues/drupal?text=locale_language_from_browser for updates.*/
+	$currentlang = (locale_language_from_browser($langlist)) ? locale_language_from_browser($langlist) : 'en';
+
+  $form['locale'] = array(
+    '#type' => 'select',
+    '#title' => st('Select the default language for your installation'),
+    '#title_display' => 'invisible',
+    '#options' => $langlist,
+    '#multiple' => FALSE,
+    '#size'=> 5,
+    '#default_value' => $currentlang
+  );
+  
   if (count($locales) == 1) {
     $form['help'] = array(
       '#markup' => '<p><a href="install.php?profile=' . $profilename . '&amp;localize=true">' . st('Learn how to install Drupal in other languages') . '</a></p>',
@@ -1259,6 +1277,21 @@ function install_select_locale_form($form, &$form_state, $locales, $profilename)
     '#type' => 'submit',
     '#value' => st('Save and continue'),
   );
+
+	drupal_add_css("
+		#edit-locale option {
+			padding:1em;
+			line-height:2em;
+			}
+		#edit-locale option:nth-child(odd) { 
+			background-color:#eeeeee;
+			}
+		#edit-locale	{
+			width: 100%;
+			font-size: 1em;
+			}
+		", 'inline');
+
   return $form;
 }
 
diff --git a/includes/install.inc b/includes/install.inc
index 089cdee..b0b1623 100644
--- a/includes/install.inc
+++ b/includes/install.inc
@@ -1048,6 +1048,7 @@ function st($string, array $args = array(), array $options = array()) {
       $po_files = file_scan_directory('./profiles/' . $install_state['parameters']['profile'] . '/translations', '/'. $install_state['parameters']['locale'] .'\.po$/', array('recurse' => FALSE));
       if (count($po_files)) {
         require_once DRUPAL_ROOT . '/includes/locale.inc';
+        require_once DRUPAL_ROOT . '/includes/gettext.inc';        
         foreach ($po_files as $po_file) {
           _locale_import_read_po('mem-store', $po_file);
         }
