diff --git a/docroot/sites/all/modules/upgrade_status/upgrade_status.compare.inc b/docroot/sites/all/modules/upgrade_status/upgrade_status.compare.inc
index a9b17f9..dfab309 100644
--- a/docroot/sites/all/modules/upgrade_status/upgrade_status.compare.inc
+++ b/docroot/sites/all/modules/upgrade_status/upgrade_status.compare.inc
@@ -302,6 +302,12 @@ function upgrade_status_calculate_project_data($available) {
       $projects[$project]['status'] = UPGRADE_STATUS_CORE;
       $projects[$project]['reason'] = t('In core');
     }
+    // US: Check if the project is obsolete.
+    elseif (upgrade_status_obsolete($projects, $project)) {
+      $projects[$project]['status'] = UPGRADE_STATUS_OBSOLETE;
+      $projects[$project]['reason'] = t('Made obsolete by');
+    }
+    // US: No release for target version found.
     else {
       $projects[$project]['status'] = UPDATE_UNKNOWN;
       $projects[$project]['reason'] = t('No available releases found');
@@ -675,3 +681,40 @@ function upgrade_status_moved_into_core(&$projects, $project) {
   return $core;
 }
 
+/**
+ * Return status and notice about modules that have been made obsolete.
+ *
+ * Assign custom upgrade information for certain modules.
+ *
+ * @param $projects
+ *   Array of projects from upgrade_status_calculate_project_data().
+ * @param $project
+ *   Project name to check.
+ * @return
+ *   TRUE if module has been made obsolete by an alternative.
+ */
+function upgrade_status_obsolete(&$projects, $project) {
+  $obsolete = TRUE;
+
+  switch ($project) {
+    case 'content_profile':
+      $projects[$project]['obsolete_since'] = '7.x';
+      $projects[$project]['replaced_by'][0]['name'] = 'profile2';
+      break;
+
+    case 'fckeditor':
+      $projects[$project]['obsolete_since'] = '5.x';
+      $projects[$project]['replaced_by'][0]['name'] = 'ckeditor';
+      break;
+
+    case 'nodewords':
+      $projects[$project]['obsolete_since'] = '7.x';
+      $projects[$project]['replaced_by'][0]['name'] = 'metatags';
+      break;
+
+    default:
+      $obsolete = FALSE;
+  }
+
+  return $obsolete;
+}
diff --git a/docroot/sites/all/modules/upgrade_status/upgrade_status.module b/docroot/sites/all/modules/upgrade_status/upgrade_status.module
index 6de0336..cbb51d0 100644
--- a/docroot/sites/all/modules/upgrade_status/upgrade_status.module
+++ b/docroot/sites/all/modules/upgrade_status/upgrade_status.module
@@ -27,6 +27,11 @@ define('UPGRADE_STATUS_STABLE', 5);
 define('UPGRADE_STATUS_CORE', 5000);
 
 /**
+ * Project has become obsolete by an alternative.
+ */
+define('UPGRADE_STATUS_OBSOLETE', 3000);
+
+/**
  * Implementation of hook_help().
  */
 function upgrade_status_help($path, $arg) {
diff --git a/docroot/sites/all/modules/upgrade_status/upgrade_status.report.inc b/docroot/sites/all/modules/upgrade_status/upgrade_status.report.inc
index 2478c9e..06fb9e0 100644
--- a/docroot/sites/all/modules/upgrade_status/upgrade_status.report.inc
+++ b/docroot/sites/all/modules/upgrade_status/upgrade_status.report.inc
@@ -64,6 +64,7 @@ function theme_upgrade_status_report($data) {
       case UPDATE_CURRENT:
       case UPGRADE_STATUS_STABLE:
       case UPGRADE_STATUS_CORE:
+      case UPGRADE_STATUS_OBSOLETE:
         $class = 'ok';
         $icon = theme('image', 'misc/watchdog-ok.png', t('ok'), t('ok'));
         break;
@@ -122,6 +123,15 @@ function theme_upgrade_status_report($data) {
       case UPGRADE_STATUS_STABLE:
         $row .= '<span class="current">'. t('Available') .'</span>';
         break;
+      case UPGRADE_STATUS_OBSOLETE:
+        $replacements = array();
+        $version = variable_get('upgrade_status_core_version', UPGRADE_STATUS_CORE_VERSION);
+        foreach ($project['replaced_by'] as $replacement) {
+          $replacements[] = $replacement['name'];
+        }
+        $replace = implode(', ', $replacements);
+        $row .= '<span class="current">'. t('Made obsolete by %replacements', array('%replacements' => $replace)) .'</span>';
+        break;
       case UPGRADE_STATUS_CORE:
         $row .= '<span class="current">'. t('In core') .'</span>';
         break;
