diff --git a/project_dependency.drupal.inc b/project_dependency.drupal.inc
index aa85bbb..61ed39d 100644
--- a/project_dependency.drupal.inc
+++ b/project_dependency.drupal.inc
@@ -308,6 +308,7 @@ function project_dependency_info_batch_process_release(array $release) {
   if (!in_array($project_type, array('project_core', 'project_module'))) {
     return FALSE;
   }
+  $release_project_name = $release_wrapper->field_release_project->field_project_machine_name->value();
 
   $url = PROJECT_DEPENDENCY_UPSTREAM_REPOSITORY_PATH . '/' . escapeshellcmd($release['repo']) . '.git';
   $tag = escapeshellcmd($release['tag']);
@@ -370,17 +371,24 @@ function project_dependency_info_batch_process_release(array $release) {
         foreach ($info[$component][$dependency_type] as $key => $dependency) {
           $parsed_dependency = project_dependency_parse_dependency($dependency, $api_term->name);
           if (!isset($parsed_dependency['project'])) {
-            $project = project_dependency_guess_project($parsed_dependency,
-              $api_term->tid);
-            if ($project) {
-              $wrapper = entity_metadata_wrapper('node', $project);
-              $project_name = $wrapper->field_project_machine_name->value();
-              $info[$component][$dependency_type][$key] = $project_name . ':' .
-                $dependency;
+            // Dependency is not namespaced.
+            if (isset($info[$parsed_dependency['name']])) {
+              // Dependency is a component of the project itself.
+              $info[$component][$dependency_type][$key] = $release_project_name . ':' . $dependency;
             }
             else {
-              // Probably should set an error message here.
-              watchdog('project_dependency', 'Failed to find a release for component %component as dependency of %depending_component, release_nid=%release_nid', array('%component' => $parsed_dependency['name'], '%depending_component' => $component, '%release_nid' => $release_node->nid));
+              $project = project_dependency_guess_project($parsed_dependency,
+                $api_term->tid);
+              if ($project) {
+                $wrapper = entity_metadata_wrapper('node', $project);
+                $project_name = $wrapper->field_project_machine_name->value();
+                $info[$component][$dependency_type][$key] = $project_name . ':' .
+                  $dependency;
+              }
+              else {
+                // Probably should set an error message here.
+                watchdog('project_dependency', 'Failed to find a release for component %component as dependency of %depending_component, release_nid=%release_nid', array('%component' => $parsed_dependency['name'], '%depending_component' => $component, '%release_nid' => $release_node->nid));
+              }
             }
           }
         }
@@ -397,7 +405,6 @@ function project_dependency_info_batch_process_release(array $release) {
   // Clear previous records for the release.
   project_dependency_info_package_clear($release['nid']);
 
-  $components_in_release = array_keys($info);
   // Store the list of components contained by the project.
   $component_info = project_dependency_info_package_list_store($release['nid'], $info);
   foreach ($component_info as $component => $item) {
@@ -405,7 +412,7 @@ function project_dependency_info_batch_process_release(array $release) {
     $new_dependencies = array();
     if (is_array($info[$component]['dependencies'])) {
       foreach ($info[$component]['dependencies'] as $new_dependency) {
-        $new_dependencies[$new_dependency] = array('external' => !in_array($new_dependency, $components_in_release));
+        $new_dependencies[$new_dependency] = array('external' => (strpos($new_dependency, $release_project_name . ':') !== 0));
       }
     }
     project_dependency_info_package_dependencies_store($item['release_nid'], $item['component_id'], $new_dependencies);
@@ -414,7 +421,7 @@ function project_dependency_info_batch_process_release(array $release) {
     $test_dependencies = array();
     if (is_array($info[$component]['test_dependencies'])) {
       foreach ($info[$component]['test_dependencies'] as $new_dependency) {
-        $test_dependencies[$new_dependency] = array('external' => !in_array($new_dependency, $components_in_release));
+        $test_dependencies[$new_dependency] = array('external' => (strpos($new_dependency, $release_project_name . ':') !== 0));
       }
     }
     project_dependency_info_package_dependencies_store($item['release_nid'], $item['component_id'], $test_dependencies, PROJECT_DEPENDENCY_DEPENDENCY_RECOMMENDED);
@@ -634,7 +641,7 @@ function project_dependency_find_external_dependencies($release_nid, $component_
     FROM {project_dependency_dependency} pdd
     INNER JOIN {project_dependency_component} pdc
       ON pdd.component_id = pdc.component_id
-    WHERE  pdc.name = :pdcname AND pdc.release_nid = :pdcrelease_nid';
+    WHERE pdd.external = 1 AND pdc.name = :pdcname AND pdc.release_nid = :pdcrelease_nid';
   $result = db_query($sql, array(':pdcname' => $component_name, ':pdcrelease_nid' => $release_nid));
   $rows = $result->fetchAll();
   return $rows;
