diff --git a/connectors/l10n_drupal_rest/l10n_drupal_rest.rest.inc b/connectors/l10n_drupal_rest/l10n_drupal_rest.rest.inc
index 7aabcfe..a5d17bd 100644
--- a/connectors/l10n_drupal_rest/l10n_drupal_rest.rest.inc
+++ b/connectors/l10n_drupal_rest/l10n_drupal_rest.rest.inc
@@ -37,26 +37,36 @@ function l10n_drupal_rest_refresh_project_list() {
   }
 
   // Record all non-existing projects in our local database.
-  foreach (array_keys($projects) as $project) {
-    if (($existing_project = db_fetch_object(db_query("SELECT * FROM {l10n_server_project} WHERE uri = '%s'", $project))) === FALSE) {
+  foreach (array_keys($projects) as $project_name => $project_title) {
+    if (($existing_project = db_fetch_object(db_query("SELECT * FROM {l10n_server_project} WHERE uri = '%s'", $project_name)))) {
+      // Check that the title is correct
+      if ($existing_project->title != $project_title) {
+        db_query("UPDATE {l10n_server_project} SET title = '%s' WHERE uri = '%s'", $project_title, $project_name);
+        watchdog($connector_name, 'Project %n renamed to %t.', array(
+          '%t' => $project_title,
+          '%p' => $project_name,
+        ));
+      }
+    }
+    else {
       $project_count++;
       // @TODO Grab titles and statuses from somewhere.
-      db_query("INSERT INTO {l10n_server_project} (uri, title, last_parsed, home_link, connector_module, status) VALUES ('%s', '%s', %d, '%s', '%s', %d)", $project, $project, time(), 'http://drupal.org/project/' . $project, $connector_name, 1);
+      db_query("INSERT INTO {l10n_server_project} (uri, title, last_parsed, home_link, connector_module, status) VALUES ('%s', '%s', %d, '%s', '%s', %d)", $project_name, $project_name, time(), 'http://drupal.org/project/' . $project_name, $connector_name, 1);
     }
   }
 
   // Record all releases in our local database.
   foreach ($releases as $release) {
-    $download_link = "http://ftp.drupal.org/files/projects/{$release['project']}-{$release['version']}.tar.gz";
+    $download_link = "http://ftp.drupal.org/files/projects/{$release['machine_name']}-{$release['version']}.tar.gz";
     if ($existing_release = db_fetch_object(db_query("SELECT * FROM {l10n_server_release} WHERE download_link = '%s'", $download_link))) {
       // @TODO What happens to unpublished releases? drop data outright?
     }
     else {
       $release_count++;
       // Get the project pid
-      $pid = db_result(db_query("SELECT pid FROM {l10n_server_project} WHERE uri = '%s'", $release['project']));
+      $pid = db_result(db_query("SELECT pid FROM {l10n_server_project} WHERE uri = '%s'", $release['machine_name']));
 
-      // @TODO What about filehash?
+      // @TODO What about  filehash?
       $filehash = '';
       // New published release, not recorded before.
       db_query("INSERT INTO {l10n_server_release} (pid, title, download_link, file_date, file_hash, last_parsed) VALUES (%d, '%s', '%s', %d, '%s', %d)", $pid, $release['version'], $download_link, $release['created'],
@@ -90,22 +100,28 @@ function l10n_drupal_rest_refresh_project_list() {
  * @return mixed
  */
 function _l10n_drupal_rest_read_tsv($file_path, $before, &$projects, &$releases) {
-  $skip = 1;
+  $headers = array();
   if (($handle = fopen($file_path, "r")) !== FALSE) {
     while (($data = fgetcsv($handle, 1000, "\t")) !== FALSE) {
-      // Filter out headers and sandboxes.
-      if ($skip-- > 0 || is_numeric($data[1])) {
+      // Get headers
+      if (empty($headers)) {
+        $headers = $data;
         continue;
       }
-      $time = strtotime($data[0]);
+      // Filter out sandboxes.
+      if (is_numeric($data['project_machine_name'])) {
+        continue;
+      }
+      $time = strtotime($data['created']);
       if ($before < $time) {
         // A first array for projects.
-        $projects[trim($data[1])] = TRUE;
+        $projects[trim($data['project_machine_name'])] = trim($data['project_name']);
         // A second array for releases.
         $releases[] = array(
           'created' => $time,
-          'project' => trim($data[1]),
-          'version' => $data[2],
+          'machine_name' => trim($data['project_machine_name']),
+          'title' => trim($data['project_name']),
+          'version' => $data['version'],
         );
       }
       else {
