diff -ur l10n_server_orig/connectors/l10n_drupal/l10n_drupal.module l10n_server/connectors/l10n_drupal/l10n_drupal.module
--- l10n_server_orig/connectors/l10n_drupal/l10n_drupal.module	2011-08-31 12:38:34.000000000 +0200
+++ l10n_server/connectors/l10n_drupal/l10n_drupal.module	2011-09-01 19:32:47.000000000 +0200
@@ -14,7 +14,7 @@
  * Implementation of hook_help().
  */
 function l10n_drupal_help($path, $arg) {
-  if (($arg[0] == 'translate') && ($arg[1] == 'projects') && ($arg[3] == 'releases') && !empty($arg[4])) {
+  if (($arg[0] == 'translate') && ($arg[1] == 'projects') && ($arg[3] == 'releases') && is_numeric($arg[3]) && !empty($arg[4])) {
     $project = l10n_server_get_projects(array('uri' => $arg[2]));
     if ($project->connector_module == 'l10n_drupal_files') {
       return t('Source code parsing warnings listed here might indicate but not necessarily mean misuse of the APIs our source code parser looks at. <a href="@url">Detailed explanation and a cheat sheet of the localization API</a> can be found in the Drupal.org handbooks.', array('@url' => 'http://drupal.org/node/322729'));
diff -ur l10n_server_orig/l10n_community/l10n_community.module l10n_server/l10n_community/l10n_community.module
--- l10n_server_orig/l10n_community/l10n_community.module	2011-08-31 12:38:34.000000000 +0200
+++ l10n_server/l10n_community/l10n_community.module	2011-09-02 09:35:15.000000000 +0200
@@ -262,6 +262,15 @@
     'file' => 'pages.inc',
     'type' => MENU_CALLBACK,
   );
+  $items['translate/projects/%l10n_community_project/releases/reset/%'] = array(
+    'load arguments' => array('%map'),
+    'title' => 'Reset release',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('l10n_communinty_projects_release_reset', 2, 5),
+    'file' => 'pages.inc',
+    'access arguments' => array('start over packages'),
+    'type' => MENU_CALLBACK,
+  );
 
   return $items;
 }
@@ -347,6 +356,7 @@
     'submit suggestions',
     'moderate suggestions from others',
     'moderate own suggestions',
+    'start over packages',
   );
 }
 
diff -ur l10n_server_orig/l10n_community/pages.inc l10n_server/l10n_community/pages.inc
--- l10n_server_orig/l10n_community/pages.inc	2011-08-31 12:38:34.000000000 +0200
+++ l10n_server/l10n_community/pages.inc	2011-09-02 09:16:04.000000000 +0200
@@ -415,14 +415,15 @@
     return '';
   }
 
-  return l10n_communinty_project_releases_table($releases, $uri, $project_name);
+  return l10n_communinty_project_releases_table($releases, $uri, $project_name, TRUE, TRUE);
 }
 
 /**
  * Display metadata based on a list of releases.
  */
-function l10n_communinty_project_releases_table($releases, $project_uri, $project_name, $link_releases = TRUE) {
+function l10n_communinty_project_releases_table($releases, $project_uri, $project_name, $link_releases = TRUE, $start_over = FALSE) {
   $rows = array();
+  $start_over = $start_over && user_access('start over packages');
   foreach ($releases as $release) {
     $file_count = db_result(db_query('SELECT COUNT(*) FROM {l10n_server_file} WHERE rid = %d', $release->rid));
     $error_count = db_result(db_query('SELECT COUNT(*) FROM {l10n_server_error} WHERE rid = %d', $release->rid));
@@ -435,13 +436,49 @@
       $file_count,
       $release->sid_count,
       $error_count ? l($error_count, 'translate/projects/' . $project_uri . '/releases/' . $release->rid, array('fragment' => 'source-warnings')) : $error_count,
+      $start_over ? l(t('Start over'), 'translate/projects/' . $project_uri . '/releases/reset/' . $release->rid) : '',
     );
   }
+
   $header = array(t('Release'), t('Download'), t('File date'), t('Last parsed'), t('Files'), t('Strings'), t('Warnings'));
+  if ($start_over) {
+    $header[] = t('Operations');
+  }
+
   return theme('table', $header, $rows);
 }
 
 /**
+ * Form callback to display a confirm form for resetting releases.
+ */ 
+function l10n_communinty_projects_release_reset(&$form_state, $project_uri, $release_rid) {
+  $project = l10n_server_get_projects(array('uri' => $project_uri));
+  $releases = l10n_server_get_releases($project_uri, FALSE);
+  $release = $releases[$release_rid];
+  $form = array(
+    'project' => array(
+      '#type' => 'value',
+      '#value' => $project,
+    ),
+    'release' => array(
+      '#type' => 'value',
+      '#value' => $release,
+    ),
+  );
+  return confirm_form($form, t('Are you sure you would like to start over with %project %release on this Localization server?', array('%project' => $project->title, '%release' => $release->title)), 'translate/projects/' . $project->uri . '/releases', t('This would remove almost all data associated with the release: files, line and parsing error information. Source strings found within this project and translations for them are temporarily kept. If you clean up the database before this release is parsed again, source strings and translations will be lost. Always make database backups. This action cannot be undone.'));
+}
+
+/**
+ * Form submission callback for resetting projects.
+ */
+function l10n_communinty_projects_release_reset_submit($form, &$form_state) {
+  module_load_include('inc', 'l10n_server', 'l10n_server.projects');
+  l10n_server_delete_release($form_state['values']['release']->rid, TRUE);
+  drupal_set_message(t('Release data for %project %release was deleted from the Localization server. Make sure to parse this release data again before deleting a project or cleaning up the database, or you will loose existing translation data.', array('%project' => $form_state['values']['project']->title, '%release' => $form_state['values']['release']->title)));
+  $form_state['redirect'] = 'translate/projects/' . $form_state['values']['project']->uri . '/releases';
+} 
+
+/**
  * Displays a page with detailed information about a release.
  *
  * @param $uri
