diff --git includes/install.inc includes/install.inc
index 68a67bc..a1c6535 100644
--- includes/install.inc
+++ includes/install.inc
@@ -298,11 +298,16 @@ abstract class DatabaseTasks {
       'arguments'   => array(),
     ),
     array(
+      'function'    => 'create_table',
       'arguments'   => array(
-        'CREATE TABLE {drupal_install_test} (id int NULL)',
+        'drupal_install_test',
+        array(
+          'fields' => array(
+            'id' => array('type' => 'int'),
+          ),
+        ),
         'Drupal can use CREATE TABLE database commands.',
-        'Failed to <strong>CREATE</strong> a test table on your database server with the command %query. The server reports the following message: %error.<p>Are you sure the configured username has the necessary permissions to create tables in the database?</p>',
-        TRUE,
+        'Failed to <strong>CREATE</strong> a test table on your database server.<p>Are you sure the configured username has the necessary permissions to create tables in the database?</p>',
       ),
     ),
     array(
@@ -462,6 +467,20 @@ abstract class DatabaseTasks {
   }
 
   /**
+   * Installer wrapper for creating a table.
+   */
+  protected function create_table($table_name, $table, $pass, $fail) {
+    try {
+      db_create_table($table_name, $table);
+      $this->pass(st($pass));
+    }
+    catch (Exception $e) {
+      $this->fail(st($fail));
+      return FALSE;
+    }
+  }
+
+  /**
    * Return driver specific configuration options.
    *
    * @param $database
