diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 4ad1429..54a136b 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,11 @@
+2012-06-15  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Test fix attempt after r120516.
+
+        * fast/workers/storage/resources/database-worker-controller.js:
+        (databaseWorker.onmessage):
+        (runTest):
+
 2012-06-16  Ryosuke Niwa  <rniwa@webkit.org>
 
         Use testRunner instead of layoutTestController in storage, tables, touchadjustments, and transforms tests
diff --git a/LayoutTests/fast/workers/storage/resources/database-worker-controller.js b/LayoutTests/fast/workers/storage/resources/database-worker-controller.js
index a765e8c..993e841 100644
--- a/LayoutTests/fast/workers/storage/resources/database-worker-controller.js
+++ b/LayoutTests/fast/workers/storage/resources/database-worker-controller.js
@@ -11,8 +11,8 @@
     if (event.data.indexOf('log:') == 0) {
         log(event.data.substring(4));
     } else if (event.data == 'notifyDone') {
-        if (window.layoutTestController)
-            layoutTestController.notifyDone();
+        if (window.testRunner)
+            testRunner.notifyDone();
     } else if (event.data.indexOf('setLocationHash:') == '0') {
         location.hash = event.data.substring('setLocationHash:'.length);
     } else if (event.data == 'back') {
@@ -28,9 +28,9 @@
 
 function runTest(testFile)
 {
-    if (window.layoutTestController) {
-        layoutTestController.dumpAsText();
-        layoutTestController.waitUntilDone();
+    if (window.testRunner) {
+        testRunner.dumpAsText();
+        testRunner.waitUntilDone();
     }
     document.getElementById("console").innerText = "";
     databaseWorker.postMessage("importScripts:../../../storage/websql/" + testFile);
