diff --git a/l10n_community/export.inc b/l10n_community/export.inc
index 1f857eb..5cfcd0d 100644
--- a/l10n_community/export.inc
+++ b/l10n_community/export.inc
@@ -36,6 +36,14 @@ function l10n_community_export_page($uri = NULL, $langcode = NULL) {
   // Add missing breadcrumb.
   drupal_set_breadcrumb($breadcrumb);
 
+  if (isset($project)) {
+    include_once drupal_get_path('module', 'l10n_community') .'/pages.inc';
+    if (!$num_source = l10n_community_get_string_count('project', $project->pid)) {
+      drupal_set_message(t('No strings found to export in this project yet.'), 'warning');
+      return '';
+    }
+  }
+
   return drupal_get_form('l10n_community_export_form', $uri, $langcode);
 }
 
diff --git a/l10n_community/l10n_community.module b/l10n_community/l10n_community.module
index b71f877..3157151 100644
--- a/l10n_community/l10n_community.module
+++ b/l10n_community/l10n_community.module
@@ -383,7 +383,7 @@ function l10n_community_block($op = 'list', $delta = 0, $edit = array()) {
               if (empty($arg1) || ($arg1 == 'downloads')) {
                 return l10n_community_block_stats_front();
               }
-              elseif ($arg1 == 'projects' && !empty($arg2) && empty($arg3)) {
+              elseif ($arg1 == 'projects' && !empty($arg2)) {
                 $project = l10n_server_get_projects(array('uri' => $arg2));
                 include_once drupal_get_path('module', 'l10n_community') .'/pages.inc';
                 return l10n_community_block_stats_project($project);
diff --git a/l10n_community/pages.inc b/l10n_community/pages.inc
index 93f030c..fa811e8 100644
--- a/l10n_community/pages.inc
+++ b/l10n_community/pages.inc
@@ -249,6 +249,11 @@ function l10n_community_overview_project($uri = NULL) {
   }
 
   $project = l10n_server_get_projects(array('uri' => $uri));
+  if (!$num_source = l10n_community_get_string_count('project', $project->pid)) {
+    drupal_set_message(t('No strings found to translate in this project yet.'), 'warning');
+    return '';
+  }
+
   $block = l10n_community_language_progress_for_project($project, $languages, t('Translations overview'), t('Overall status of translations'));
   return $block['content'];
 }
@@ -266,18 +271,30 @@ function l10n_community_block_stats_project($project) {
       $num_parsed++;
     }
   }
+  $num_releases = count($releases);
 
   $num_warnings = db_result(db_query("SELECT COUNT(DISTINCT e.eid) FROM {l10n_server_project} p LEFT JOIN {l10n_server_release} r ON p.pid = r.pid LEFT JOIN {l10n_server_error} e ON r.rid = e.rid WHERE p.uri = '%s'", $project->uri));
 
+  // Build list of links for summary.
+  $list = array();
+  if (!empty($project->home_link)) {
+    $list[] = t('Project home') .': <a href="'. check_url($project->home_link) .'">'. check_plain($project->home_link) .'</a>';
+  }
+  if ($num_releases == 0) {
+    // If we don't know of any releases, we do not list source string or warning
+    // information, since we should have all zeros there too. This summarizes
+    // our stand in short, that we do not yet have data here.
+    $list[] = t('No releases known yet');
+  }
+  else {
+    $list[] = l(format_plural($num_parsed, '1 release parsed', '@count releases parsed') .' ('. format_plural($num_releases, '1 known', '@count known') .')', 'translate/projects/'. $project->uri .'/releases');
+    $list[] = ($num_source == 0 ? t('No source strings found') : format_plural($num_source, '1 source string in total', '@count source strings in total'));
+    $list[] = ($num_warnings == 0 ? t('No source code warnings') : format_plural($num_warnings, '1 source code warning', '@count source code warnings'));
+  }
+
   return array(
     'subject' => t('Project statistics'),
-    'content' => theme('item_list', array(
-      t('Project home') .': '. (!empty($project->home_link) ? ('<a href="'. check_url($project->home_link) .'">'. check_plain($project->home_link) .'</a>') : t('Not available')),
-      format_plural(count($releases), '1 release known', '@count releases known'),
-      format_plural($num_parsed, '1 release parsed', '@count releases parsed'),
-      format_plural($num_source, '1 source string in total', '@count source strings in total'),
-      ($num_warnings == 0 ? t('No source code warnings') : l(format_plural($num_warnings, '1 source code warning', '@count source code warnings'), 'translate/projects/'. $project->uri .'/warnings')),
-    ))
+    'content' => theme('item_list', $list),
   );
 }
 
@@ -380,7 +397,7 @@ function l10n_community_project_releases($uri = NULL) {
 
   $releases = l10n_server_get_releases($uri);
   if (empty($releases)) {
-    drupal_set_message(t('No releases found for this project.'));
+    drupal_set_message(t('No releases found for this project yet.'), 'warning');
     return '';
   }
 
@@ -403,7 +420,7 @@ function l10n_communinty_project_releases_table($releases, $project_uri, $projec
       empty($release->last_parsed) ? t('in queue') : format_date($release->last_parsed),
       $file_count,
       $release->sid_count,
-      $error_count,
+      $error_count ? l($error_count, 'translate/projects/'. $project_uri .'/releases/'. $release->rid, array('fragment' => 'source-warnings')) : $error_count,
     );
   }
   $header = array(t('Release'), t('Download'), t('File date'), t('Last parsed'), t('Files'), t('Strings'), t('Warnings'));
@@ -426,14 +443,14 @@ function l10n_community_project_release($uri = NULL, $rid = NULL) {
   $project = l10n_server_get_projects(array('uri' => $uri));
   $releases = l10n_server_get_releases($uri);
   if (empty($releases) || !isset($releases[$rid])) {
-    drupal_set_message(t('The requested release could not be found.'));
+    drupal_set_message(t('The requested release could not be found.'), 'error');
     return '';
   }
   $release = $releases[$rid];
   drupal_set_title(t('@project @release information', array('@project' => $project->title, '@release' => $release->title)));
 
   // Reproduce the basic release information from the parent page.
-  $output .= '<h3>'. t('Basic release information') .'</h3>';
+  $output = '<h3>'. t('Basic release information') .'</h3>';
   $output .= l10n_communinty_project_releases_table(array($release), $uri, $project->title, FALSE);
 
   // List the files that we looked at.
@@ -452,7 +469,7 @@ function l10n_community_project_release($uri = NULL, $rid = NULL) {
   }
 
   // List of release parse warnings we found.
-  $output .= '<h3>'. t('Source code warnings identified') .'</h3>';
+  $output .= '<h3 id="source-warnings">'. t('Source code warnings identified') .'</h3>';
   $result = db_query("SELECT * FROM {l10n_server_error} WHERE rid = %d", $release->rid);
   $rows = array();
   while ($warning = db_fetch_object($result)) {
