diff --git a/docs/_ext/djangodocs.py b/docs/_ext/djangodocs.py
index aaad219..fdedbc7 100644
--- a/docs/_ext/djangodocs.py
+++ b/docs/_ext/djangodocs.py
@@ -71,7 +71,7 @@ def parse_version_directive(name, arguments, options, content, lineno,
     if not is_nextversion:
         if len(arguments) == 1:
             linktext = 'Please, see the release notes <releases-%s>' % (arguments[0])
-            xrefs = sphinx.roles.xfileref_role('ref', linktext, linktext, lineno, state)
+            xrefs = sphinx.roles.XRefRole()('ref', linktext, linktext, lineno, state)
             node.extend(xrefs[0])
         node['version'] = arguments[0]
     else:
@@ -83,7 +83,11 @@ def parse_version_directive(name, arguments, options, content, lineno,
         if content:
             state.nested_parse(content, content_offset, node)
         ret = ret + messages
-    env.note_versionchange(node['type'], node['version'], node, lineno)
+    env.versionchanges.setdefault(node['version'], []).append(
+        (node['type'], env.temp_data['docname'], lineno,
+        env.temp_data.get('py_module'),
+        env.temp_data.get('object'),
+        node.astext()))
     return ret
 
                 
@@ -195,7 +199,7 @@ def parse_django_admin_node(env, sig, signode):
 def parse_django_adminopt_node(env, sig, signode):
     """A copy of sphinx.directives.CmdoptionDesc.parse_signature()"""
     from sphinx import addnodes
-    from sphinx.directives.desc import option_desc_re
+    from sphinx.domains.std import option_desc_re
     count = 0
     firstname = ''
     for m in option_desc_re.finditer(sig):
