diff --git a/misc/drupal.js b/misc/drupal.js
index f1af13be184915f2c9a849daa0e59144dd089ad9..1bc35c7573d90f9005d445fc23099c796bf8caeb 100644
--- a/misc/drupal.js
+++ b/misc/drupal.js
@@ -66,6 +66,9 @@ function HTTPGet(uri, callbackFunction, callbackParameter) {
 
 /**
  * Creates an HTTP POST request and sends the response to the callback function
+ *
+ * Note: passing null or undefined for 'object' makes the request fail in Opera.
+ *       Pass an empty string instead, if you must.
  */
 function HTTPPost(uri, callbackFunction, callbackParameter, object) {
   var xmlHttp = new XMLHttpRequest();
diff --git a/misc/progress.js b/misc/progress.js
index b19cc08dbc8f32ea816ccc802bab2d10b6170d7f..66013d4e88e45db02193ac4800639c846c220cfb 100644
--- a/misc/progress.js
+++ b/misc/progress.js
@@ -69,7 +69,7 @@ progressBar.prototype.sendPing = function () {
   if (this.timer) {
     clearTimeout(this.timer);
   }
-  this.method(this.uri, this.receivePing, this);
+  this.method(this.uri, this.receivePing, this, '');
 }
 
 /**
diff --git a/misc/update.js b/misc/update.js
index 1b79a74e59e8752f31bb8ec744ba2684046aad7f..e4358d269172b7ce3a76b8ce99c1a57cce9d8036 100644
--- a/misc/update.js
+++ b/misc/update.js
@@ -11,7 +11,7 @@ if (isJsEnabled()) {
         }
       }
 
-      this.progress = new progressBar('updateprogress', updateCallback, HTTPGet);
+      this.progress = new progressBar('updateprogress', updateCallback, HTTPPost);
       this.progress.setProgress(-1, 'Starting updates...');
       $('progress').appendChild(this.progress.element);
       this.progress.startMonitoring('update.php?op=do_update', 0);
diff --git a/update.php b/update.php
index 14c19e4d0681f5e741aa91d476d9d1fb91ae02e6..c29fbdb096036255746ca89b40404ad3e9d5d6f6 100644
--- a/update.php
+++ b/update.php
@@ -308,7 +308,8 @@ function update_selection_page() {
 
   $form['has_js'] = array(
     '#type' => 'hidden',
-    '#default_value' => FALSE
+    '#default_value' => FALSE,
+    '#attributes' => array('id' => 'edit-has_js')
   );
   $form['submit'] = array(
     '#type' => 'submit',