diff --git a/includes/database/mysql/schema.inc b/includes/database/mysql/schema.inc
index 6be46be92c34fe57f7ebd77703bcd76b5d5d13c4..16f3fd5a8213fd846436489a1acf28e473d5f5bc 100644
--- a/includes/database/mysql/schema.inc
+++ b/includes/database/mysql/schema.inc
@@ -226,12 +226,12 @@ protected function createKeysSql($spec) {
     }
     if (!empty($spec['unique keys'])) {
       foreach ($spec['unique keys'] as $key => $fields) {
-        $keys[] = 'UNIQUE KEY ' . $key . ' (' . $this->createKeysSqlHelper($fields) . ')';
+        $keys[] = 'UNIQUE KEY `' . $key . '` (' . $this->createKeysSqlHelper($fields) . ')';
       }
     }
     if (!empty($spec['indexes'])) {
       foreach ($spec['indexes'] as $index => $fields) {
-        $keys[] = 'INDEX ' . $index . ' (' . $this->createKeysSqlHelper($fields) . ')';
+        $keys[] = 'INDEX `' . $index . '` (' . $this->createKeysSqlHelper($fields) . ')';
       }
     }
 
@@ -242,10 +242,10 @@ protected function createKeySql($fields) {
     $ret = array();
     foreach ($fields as $field) {
       if (is_array($field)) {
-        $ret[] = $field[0] . '(' . $field[1] . ')';
+        $ret[] = '`' . $field[0] . '`(' . $field[1] . ')';
       }
       else {
-        $ret[] = $field;
+        $ret[] = '`' . $field . '`';
       }
     }
     return implode(', ', $ret);
@@ -255,10 +255,10 @@ protected function createKeysSqlHelper($fields) {
     $ret = array();
     foreach ($fields as $field) {
       if (is_array($field)) {
-        $ret[] = $field[0] . '(' . $field[1] . ')';
+        $ret[] = '`' . $field[0] . '`(' . $field[1] . ')';
       }
       else {
-        $ret[] = $field;
+        $ret[] = '`' . $field . '`';
       }
     }
     return implode(', ', $ret);
@@ -297,7 +297,7 @@ public function addField(&$ret, $table, $field, $spec, $keys_new = array()) {
   }
 
   public function dropField(&$ret, $table, $field) {
-    $ret[] = update_sql('ALTER TABLE {' . $table . '} DROP ' . $field);
+    $ret[] = update_sql('ALTER TABLE {' . $table . '} DROP `' . $field . '`');
   }
 
   public function fieldSetDefault(&$ret, $table, $field, $default) {
@@ -308,11 +308,11 @@ public function fieldSetDefault(&$ret, $table, $field, $default) {
       $default = is_string($default) ? "'$default'" : $default;
     }
 
-    $ret[] = update_sql('ALTER TABLE {' . $table . '} ALTER COLUMN ' . $field . ' SET DEFAULT ' . $default);
+    $ret[] = update_sql('ALTER TABLE {' . $table . '} ALTER COLUMN `' . $field . '` SET DEFAULT ' . $default);
   }
 
   public function fieldSetNoDefault(&$ret, $table, $field) {
-    $ret[] = update_sql('ALTER TABLE {' . $table . '} ALTER COLUMN ' . $field . ' DROP DEFAULT');
+    $ret[] = update_sql('ALTER TABLE {' . $table . '} ALTER COLUMN `' . $field . '` DROP DEFAULT');
   }
 
   public function addPrimaryKey(&$ret, $table, $fields) {
@@ -324,20 +324,20 @@ public function dropPrimaryKey(&$ret, $table) {
   }
 
   public function addUniqueKey(&$ret, $table, $name, $fields) {
-    $ret[] = update_sql('ALTER TABLE {' . $table . '} ADD UNIQUE KEY ' . $name . ' (' . $this->createKeySql($fields) . ')');
+    $ret[] = update_sql('ALTER TABLE {' . $table . '} ADD UNIQUE KEY `' . $name . '` (' . $this->createKeySql($fields) . ')');
   }
 
   public function dropUniqueKey(&$ret, $table, $name) {
-    $ret[] = update_sql('ALTER TABLE {' . $table . '} DROP KEY ' . $name);
+    $ret[] = update_sql('ALTER TABLE {' . $table . '} DROP KEY `' . $name . '`');
   }
 
   public function addIndex(&$ret, $table, $name, $fields) {
-    $query = 'ALTER TABLE {' . $table . '} ADD INDEX ' . $name . ' (' . $this->createKeySql($fields) . ')';
+    $query = 'ALTER TABLE {' . $table . '} ADD INDEX `' . $name . '` (' . $this->createKeySql($fields) . ')';
     $ret[] = update_sql($query);
   }
 
   public function dropIndex(&$ret, $table, $name) {
-    $ret[] = update_sql('ALTER TABLE {' . $table . '} DROP INDEX ' . $name);
+    $ret[] = update_sql('ALTER TABLE {' . $table . '} DROP INDEX `' . $name . '`');
   }
 
   public function changeField(&$ret, $table, $field, $field_new, $spec, $keys_new = array()) {
diff --git a/includes/database/pgsql/schema.inc b/includes/database/pgsql/schema.inc
index 2d282b50bd4c755b6d764abb51d831bacc20f77c..61080c0addcd15f3b1bf5a2db270a2dd96ee944d 100644
--- a/includes/database/pgsql/schema.inc
+++ b/includes/database/pgsql/schema.inc
@@ -260,7 +260,7 @@ protected function _createKeySql($fields) {
         $ret[] = 'substr(' . $field[0] . ', 1, ' . $field[1] . ')';
       }
       else {
-        $ret[] = $field;
+        $ret[] = '"' . $field . '"';
       }
     }
     return implode(', ', $ret);
@@ -355,7 +355,7 @@ public function addField(&$ret, $table, $field, $spec, $new_keys = array()) {
    *   The field to be dropped.
    */
   public function dropField(&$ret, $table, $field) {
-    $ret[] = update_sql('ALTER TABLE {' . $table . '} DROP COLUMN ' . $field);
+    $ret[] = update_sql('ALTER TABLE {' . $table . '} DROP COLUMN "' . $field . '"');
   }
 
   /**
@@ -378,7 +378,7 @@ public function fieldSetDefault(&$ret, $table, $field, $default) {
       $default = is_string($default) ? "'$default'" : $default;
     }
 
-    $ret[] = update_sql('ALTER TABLE {' . $table . '} ALTER COLUMN ' . $field . ' SET DEFAULT ' . $default);
+    $ret[] = update_sql('ALTER TABLE {' . $table . '} ALTER COLUMN "' . $field . '" SET DEFAULT ' . $default);
   }
 
   /**
@@ -392,7 +392,7 @@ public function fieldSetDefault(&$ret, $table, $field, $default) {
    *   The field to be altered.
    */
   public function fieldSetNoDefault(&$ret, $table, $field) {
-    $ret[] = update_sql('ALTER TABLE {' . $table . '} ALTER COLUMN ' . $field . ' DROP DEFAULT');
+    $ret[] = update_sql('ALTER TABLE {' . $table . '} ALTER COLUMN "' . $field . '" DROP DEFAULT');
   }
 
   /**
@@ -435,7 +435,7 @@ public function dropPrimaryKey(&$ret, $table) {
    */
   function addUniqueKey(&$ret, $table, $name, $fields) {
     $name = '{' . $table . '}_' . $name . '_key';
-    $ret[] = update_sql('ALTER TABLE {' . $table . '} ADD CONSTRAINT ' . $name . ' UNIQUE (' . implode(',', $fields) . ')');
+    $ret[] = update_sql('ALTER TABLE {' . $table . '} ADD CONSTRAINT "' . $name . '" UNIQUE (' . implode(',', $fields) . ')');
   }
 
   /**
@@ -450,7 +450,7 @@ function addUniqueKey(&$ret, $table, $name, $fields) {
    */
   public function dropUniqueKey(&$ret, $table, $name) {
     $name = '{' . $table . '}_' . $name . '_key';
-    $ret[] = update_sql('ALTER TABLE {' . $table . '} DROP CONSTRAINT ' . $name);
+    $ret[] = update_sql('ALTER TABLE {' . $table . '} DROP CONSTRAINT "' . $name . '"');
   }
 
   /**
@@ -578,7 +578,7 @@ public function changeField(&$ret, $table, $field, $field_new, $spec, $new_keys
   }
 
   protected function _createIndexSql($table, $name, $fields) {
-    $query = 'CREATE INDEX {' . $table . '}_' . $name . '_idx ON {' . $table . '} (';
+    $query = 'CREATE INDEX "{' . $table . '}_' . $name . '_idx" ON {' . $table . '} (';
     $query .= $this->_createKeySql($fields) . ')';
     return $query;
   }
diff --git a/includes/database/sqlite/schema.inc b/includes/database/sqlite/schema.inc
index 1d0672c16a7a90739356cdddfef21e1e278a3cb1..d32ef98798b70c2d323e41ea59ecbafe501b870b 100644
--- a/includes/database/sqlite/schema.inc
+++ b/includes/database/sqlite/schema.inc
@@ -47,12 +47,12 @@ protected function createIndexSql($tablename, $schema) {
     $sql = array();
     if (!empty($schema['unique keys'])) {
       foreach ($schema['unique keys'] as $key => $fields) {
-        $sql[] = 'CREATE UNIQUE INDEX {' . $tablename . '}_' . $key . ' ON {' . $tablename . '} (' . $this->createKeySql($fields) . "); \n";
+        $sql[] = 'CREATE UNIQUE INDEX "{' . $tablename . '}_' . $key . '" ON {' . $tablename . '} (' . $this->createKeySql($fields) . "); \n";
       }
     }
     if (!empty($schema['indexes'])) {
       foreach ($schema['indexes'] as $index => $fields) {
-        $sql[] = 'CREATE INDEX {' . $tablename . '}_' . $index . ' ON {' . $tablename . '} (' . $this->createKeySql($fields) . "); \n";
+        $sql[] = 'CREATE INDEX "{' . $tablename . '}_' . $index . '" ON {' . $tablename . '} (' . $this->createKeySql($fields) . "); \n";
       }
     }
     return $sql;