diff --git a/resources/node_resource.inc b/resources/node_resource.inc
index 1c2617b..34d1493 100644
--- a/resources/node_resource.inc
+++ b/resources/node_resource.inc
@@ -105,6 +105,53 @@ function _node_resource_definition() {
         ),
         'access arguments' => array('access content'),
       ),
+      'targeted relationships' => array(
+        'comments' => array(
+          'help'   => t('This method returns comments for a node with a specified ID.'),
+          'file' => array('type' => 'inc', 'module' => 'services', 'name' => 'resources/node_resource'),
+          'access callback' => '_node_resource_comment_access',
+          'access arguments' => array('view'),
+          'access arguments append' => TRUE,
+          'callback' => '_node_resource_comments',
+          'args'     => array(
+            array(
+              'name'         => 'nid',
+              'type'         => 'int',
+              'description'  => t('The node id to load files for.'),
+              'source' => array('path' => 0),
+              'optional'     => FALSE,
+            ),
+            array(
+              'name'         => 'new_count',
+              'type'         => 'int',
+              'description'  => t('To return only new comments.'),
+              'source'       => 'data',
+              'optional'     => FALSE,
+              'default value' => TRUE,
+            ),
+          ),
+        ),
+      ),
+      'relationships' => array(
+        'titles' => array(
+          'help'   => t('This method returns titles for a all nodes.'),
+          'file' => array('type' => 'inc', 'module' => 'services', 'name' => 'resources/node_resource'),
+          'access callback' => '_node_resource_comment_access',
+          'access arguments' => array('view'),
+          'access arguments append' => TRUE,
+          'callback' => '_node_resource_comments',
+          'args'     => array(
+            array(
+              'name'         => 'new_count',
+              'type'         => 'int',
+              'description'  => t('To return only new comments.'),
+              'source' => array('param' => 'new_count'),
+              'optional'     => FALSE,
+              'default value' => TRUE,
+            ),
+          ),
+        ),
+      ),
     ),
   );
 }
diff --git a/servers/rest_server/includes/RESTServer.inc b/servers/rest_server/includes/RESTServer.inc
index 367f2f3..572e414 100755
--- a/servers/rest_server/includes/RESTServer.inc
+++ b/servers/rest_server/includes/RESTServer.inc
@@ -537,6 +537,20 @@ class RESTServer {
         'PUT' => 'update',
         'DELETE' => 'delete',
       );
+      //Check for relationships first, always when the method is GET ie node/comments
+      //If it fails, and our path exists, its because the non-targeted relationship is not enabled
+      if($method == 'GET') {
+        if ((isset($resource['relationships']) && $resource['relationships'][$path[0]]) && $resource['relationships'][$path[0]]['status'] == TRUE) {
+          $relationship = $resource['relationships'][$path[0]];
+          return $relationship;
+        } else {
+          //Return nothing because this relationship EXISTS, but is not enabled.
+          //But we still want to be able to get to places like node/24 instead of node/titles
+          if($resource['relationships'][$path[0]]) {
+            return '';
+          }
+        }
+      }
       if (isset($resource[$action_mapping[$method]])) {
         $controller = $resource[$action_mapping[$method]];
         if (isset($resource['file'])) {
@@ -545,10 +559,10 @@ class RESTServer {
         return $controller;
       }
     }
-    // Detect relationship requests
+    // Detect targeted relationship requests
     else if ($pc>=2 && $method=='GET') {
-      if (isset($resource['relationships']) && $resource['relationships'][$path[1]]) {
-        $relationship = $resource['relationships'][$path[1]];
+      if (isset($resource['targeted relationships']) && $resource['targeted relationships'][$path[1]]) {
+        $relationship = $resource['targeted relationships'][$path[1]];
         return $relationship;
       }
     }
diff --git a/services.admin.inc b/services.admin.inc
index ab63a27..9fa77ce 100644
--- a/services.admin.inc
+++ b/services.admin.inc
@@ -607,6 +607,7 @@ function services_edit_form_endpoint_resources(&$form_state, $endpoint) {
       'actions'          => 'actions',
       'targeted_actions' => 'targeted actions',
       'relationships'    => 'relationships',
+      'targeted_relationships'    => 'targeted relationships',
     );
     foreach ($classes as $element => $class) {
       if (!empty($resource[$class])) {
@@ -681,9 +682,10 @@ function services_edit_form_endpoint_resources_submit($form, $form_state) {
     }
 
     $classes = array(
-      'actions' => 'actions',
+      'actions'          => 'actions',
       'targeted_actions' => 'targeted actions',
-      'relationships' => 'relationships',
+      'relationships'    => 'relationships',
+      'targeted_relationships'    => 'targeted relationships',
     );
     foreach ($classes as $element => $class) {
       $class_used = FALSE;
diff --git a/services.module b/services.module
index 930fc6f..2050b17 100644
--- a/services.module
+++ b/services.module
@@ -434,7 +434,7 @@ function services_services_resources() {
  */
 function services_controllers_list($endpoint) {
   $controllers = array();
-  $ops = array('actions', 'relationships', 'targeted actions');
+  $ops = array('actions', 'targeted relationships', 'relationships', 'targeted actions');
   $resources = services_get_resources($endpoint);
   foreach ($resources as $resource_name => $res) {
     // Get all basic operations
diff --git a/services.resource_build.inc b/services.resource_build.inc
index 91512c1..9e751aa 100644
--- a/services.resource_build.inc
+++ b/services.resource_build.inc
@@ -111,17 +111,19 @@ function _services_apply_endpoint(&$resources, $endpoint, $strict = TRUE) {
         }
       }
 
-      $classes = array('targeted actions', 'actions', 'relationships');
+      $classes = array('targeted actions', 'actions', 'relationships', 'targeted relationships');
       foreach ($classes as $class) {
         if (!empty($resource[$class])) {
           foreach ($resource[$class] as $op => $def) {
             $cop = isset($cres[$class][$op]) ? $cres[$class][$op] : array();
             if (empty($cop) || !$cop['enabled']) {
               if ($strict) {
-                unset($resource[$class][$op]);
+//                unset($resource[$class][$op]);
+                $resource[$class][$op]['status'] = 0;
               }
             }
             else {
+            $resource[$class][$op]['status'] = 1;
               $resource[$class][$op]['endpoint'] = $cop;
             }
           }