diff --git a/trac/versioncontrol/api.py b/trac/versioncontrol/api.py
--- a/trac/versioncontrol/api.py
+++ b/trac/versioncontrol/api.py
@@ -952,8 +952,8 @@ class Node(object):
     DIRECTORY = "dir"
     FILE = "file"
 
-    resource = property(lambda self: Resource('source', self.created_path,
-                                              version=self.created_rev,
+    resource = property(lambda self: Resource('source', self.path,
+                                              version=self.rev,
                                               parent=self.repos.resource))
 
     # created_path and created_rev properties refer to the Node "creation"
diff --git a/trac/versioncontrol/svn_fs.py b/trac/versioncontrol/svn_fs.py
--- a/trac/versioncontrol/svn_fs.py
+++ b/trac/versioncontrol/svn_fs.py
@@ -679,7 +679,6 @@ class SubversionNode(Node):
         self.pool = Pool(pool)
         pool = self.pool()
         self._scoped_path_utf8 = _to_svn(pool, self.scope, path)
-        self._requested_rev = rev
 
         if parent_root:
             self.root = parent_root
@@ -703,9 +702,8 @@ class SubversionNode(Node):
             self.created_path = _path_within_scope(self.scope, cp)
         else:
             self.created_rev, self.created_path = rev, path
-        self.rev = self.created_rev
         # TODO: check node id
-        Node.__init__(self, repos, path, self.rev, _kindmap[node_type])
+        Node.__init__(self, repos, path, rev, _kindmap[node_type])
 
     def get_content(self):
         if self.isdir:
@@ -724,16 +722,15 @@ class SubversionNode(Node):
         entries = fs.dir_entries(self.root, self._scoped_path_utf8, pool())
         for item in entries.keys():
             path = posixpath.join(self.path, _from_svn(item))
-            yield SubversionNode(path, self._requested_rev, self.repos,
-                                 self.pool, self.root)
+            yield SubversionNode(path, self.rev, self.repos, self.pool,
+                                 self.root)
 
     def get_history(self, limit=None):
         newer = None # 'newer' is the previously seen history tuple
         older = None # 'older' is the currently examined history tuple
         pool = Pool(self.pool)
         numrevs = 0
-        for path, rev in self.repos._history(self.path, 1, self._requested_rev,
-                                             pool):
+        for path, rev in self.repos._history(self.path, 1, self.rev, pool):
             path = _path_within_scope(self.scope, path)
             if rev > 0 and path:
                 older = (path, rev, Changeset.ADD)
@@ -757,7 +754,7 @@ class SubversionNode(Node):
             def blame_receiver(line_no, revision, author, date, line, pool):
                 annotations.append(revision)
             try:
-                rev = _svn_rev(self._requested_rev)
+                rev = _svn_rev(self.rev)
                 start = _svn_rev(0)
                 file_url_utf8 = posixpath.join(self.repos.ra_url_utf8,
                                                self._scoped_path_utf8)
@@ -817,7 +814,7 @@ class SubversionNode(Node):
         operation was performed.
         """
         ancestors = []
-        previous = (self._scoped_path_utf8, self._requested_rev, self.root)
+        previous = (self._scoped_path_utf8, self.rev, self.root)
         while previous:
             (previous_path, previous_rev, previous_root) = previous
             previous = None
diff --git a/trac/versioncontrol/tests/svn_fs.py b/trac/versioncontrol/tests/svn_fs.py
--- a/trac/versioncontrol/tests/svn_fs.py
+++ b/trac/versioncontrol/tests/svn_fs.py
@@ -148,14 +148,16 @@ class NormalTests(object):
         self.assertEqual(u'tête', node.name)
         self.assertEqual(u'/tête', node.path)
         self.assertEqual(Node.DIRECTORY, node.kind)
-        self.assertEqual(TETE, node.rev)
+        self.assertEqual(HEAD, node.rev)
+        self.assertEqual(TETE, node.created_rev)
         self.assertEqual(datetime(2007, 4, 30, 17, 45, 26, 234375, utc),
                          node.last_modified)
         node = self.repos.get_node(u'/tête/README.txt')
         self.assertEqual('README.txt', node.name)
         self.assertEqual(u'/tête/README.txt', node.path)
         self.assertEqual(Node.FILE, node.kind)
-        self.assertEqual(3, node.rev)
+        self.assertEqual(HEAD, node.rev)
+        self.assertEqual(3, node.created_rev)
         self.assertEqual(datetime(2005, 4, 1, 13, 24, 58, 234643, utc),
                          node.last_modified)
 
@@ -216,14 +218,14 @@ class NormalTests(object):
 
     def test_created_path_rev(self):
         node = self.repos.get_node(u'/tête/README3.txt', 15)
-        self.assertEqual(14, node.rev)
+        self.assertEqual(15, node.rev)
         self.assertEqual(u'/tête/README3.txt', node.path)
         self.assertEqual(14, node.created_rev)
         self.assertEqual(u'tête/README3.txt', node.created_path)
 
     def test_created_path_rev_parent_copy(self):
         node = self.repos.get_node('/tags/v1/README.txt', 15)
-        self.assertEqual(3, node.rev)
+        self.assertEqual(15, node.rev)
         self.assertEqual('/tags/v1/README.txt', node.path)
         self.assertEqual(3, node.created_rev)
         self.assertEqual(u'tête/README.txt', node.created_path)
@@ -357,7 +359,7 @@ class NormalTests(object):
                         (Node.DIRECTORY, Changeset.ADD)), diffs.next())
         self._cmp_diff((None, (u'tête/dir1/dir3', 8),
                         (Node.DIRECTORY, Changeset.ADD)), diffs.next())
-        self._cmp_diff((None, (u'tête/README2.txt', 6),
+        self._cmp_diff((None, (u'tête/README2.txt', 8),
                         (Node.FILE, Changeset.ADD)), diffs.next())
         self._cmp_diff(((u'tête/dir2', 4), None,
                         (Node.DIRECTORY, Changeset.DELETE)), diffs.next())
@@ -576,14 +578,16 @@ class ScopedTests(object):
         self.assertEqual('dir1', node.name)
         self.assertEqual('/dir1', node.path)
         self.assertEqual(Node.DIRECTORY, node.kind)
-        self.assertEqual(5, node.rev)
+        self.assertEqual(TETE, node.rev)
+        self.assertEqual(5, node.created_rev)
         self.assertEqual(datetime(2005, 4, 1, 16, 25, 39, 658099, utc),
                          node.last_modified)
         node = self.repos.get_node('/README.txt')
         self.assertEqual('README.txt', node.name)
         self.assertEqual('/README.txt', node.path)
         self.assertEqual(Node.FILE, node.kind)
-        self.assertEqual(3, node.rev)
+        self.assertEqual(TETE, node.rev)
+        self.assertEqual(3, node.created_rev)
         self.assertEqual(datetime(2005, 4, 1, 13, 24, 58, 234643, utc),
                          node.last_modified)
 
