diff --git a/grit/node/misc.py b/grit/node/misc.py
index 734c57a..345081f 100755
--- a/grit/node/misc.py
+++ b/grit/node/misc.py
@@ -49,7 +49,6 @@
   def ReplaceVariable(matchobj):
     for key, value in defines.iteritems():
       if matchobj.group(1) == key:
-        value = os.path.abspath(value)[len(src_root_dir) + 1:]
         return value
     return ''
 
@@ -58,7 +57,12 @@
     new_grd_filename = re.sub(r'<\(([A-Za-z_]+)\)', ReplaceVariable,
                               grd_filename)
     if new_grd_filename != grd_filename:
-      new_grd_filename = new_grd_filename.replace('\\', '/')
+      abs_grd_filename = os.path.abspath(new_grd_filename)
+      if abs_grd_filename[:len(src_root_dir)] != src_root_dir:
+        new_grd_filename = os.path.basename(abs_grd_filename)
+      else:
+        new_grd_filename = abs_grd_filename[len(src_root_dir) + 1:]
+        new_grd_filename = new_grd_filename.replace('\\', '/')
       renames.append((grd_filename, new_grd_filename))
 
   for grd_filename, new_grd_filename in renames:
diff --git a/grit/node/misc_unittest.py b/grit/node/misc_unittest.py
index 496d153..b353edb 100644
--- a/grit/node/misc_unittest.py
+++ b/grit/node/misc_unittest.py
@@ -46,6 +46,12 @@
     self.assertEqual({},
         id_dict.get('out/Release/obj/gen/devtools/devtools.grd', None))
 
+    src_dir, id_dict = misc._ReadFirstIdsFromFile(
+        test_resource_ids,
+        {
+          'SHARED_INTERMEDIATE_DIR': '/outside/src_dir',
+        })
+    self.assertEqual({}, id_dict.get('devtools.grd', None))
 
 class IfNodeUnittest(unittest.TestCase):
   def testIffyness(self):
