diff --git a/lang_dropdown.module b/lang_dropdown.module
index d997ac0..2902be8 100644
--- a/lang_dropdown.module
+++ b/lang_dropdown.module
@@ -171,7 +171,7 @@ function lang_dropdown_block_view($type) {
  */
 function lang_dropdown_form($form, &$form_state, $languages) {
 
-  global $language;
+  global $language_url;
 
   $settings = _lang_dropdown_get_settings();
 
@@ -203,7 +203,7 @@ function lang_dropdown_form($form, &$form_state, $languages) {
     // Set the selected option to be ready for #default_value in select form element.
     if (isset($lang_options['href'])
 && ($lang_options['href'] == $_GET['q'] || ($lang_options['href'] == '<front>' && drupal_is_front_page()))
-&& (empty($lang_options['language']) || $lang_options['language']->language == $language->language)) {
+&& (empty($lang_options['language']) || $lang_options['language']->language == $language_url->language)) {
 
       $selected_option = $lang_code;
 
@@ -223,6 +223,7 @@ function lang_dropdown_form($form, &$form_state, $languages) {
       '#type' => 'hidden',
       '#default_value' => url($href, array(
         'language' => $lang_options['language'],
+        'query' => isset($lang_options['query']) ? $lang_options['query'] : '',
         'absolute' => TRUE,
       )),
     );
