diff --git a/core/misc/ajax.js b/core/misc/ajax.js
index ec9958d..b261762 100644
--- a/core/misc/ajax.js
+++ b/core/misc/ajax.js
@@ -360,7 +360,7 @@ Drupal.ajax.prototype.beforeSend = function (xmlhttprequest, options) {
 
   // Insert progressbar or throbber.
   if (this.progress.type == 'bar') {
-    var progressBar = new Drupal.progressBar('ajax-progress-' + this.element.id, eval(this.progress.update_callback), this.progress.method, eval(this.progress.error_callback));
+    var progressBar = new Drupal.progressBar('ajax-progress-' + this.element.id, this.progress.method);
     if (this.progress.message) {
       progressBar.setProgress(-1, this.progress.message);
     }
diff --git a/core/misc/progress.js b/core/misc/progress.js
index 822666a..d3b6d94 100644
--- a/core/misc/progress.js
+++ b/core/misc/progress.js
@@ -10,12 +10,13 @@
  * e.g. pb = new progressBar('myProgressBar');
  *      some_element.appendChild(pb.element);
  */
-Drupal.progressBar = function (id, updateCallback, method, errorCallback) {
+Drupal.progressBar = function (id, method) {
   var pb = this;
   this.id = id;
   this.method = method || 'GET';
-  this.updateCallback = updateCallback;
-  this.errorCallback = errorCallback;
+  // This could still be set from outside.
+  this.updateCallback = null;
+  this.errorCallback = null;
 
   // The WAI-ARIA setting aria-live="polite" will announce changes after users
   // have completed their current activity and not interrupt the screen reader.
