diff --git a/ietf/doc/views_doc.py b/ietf/doc/views_doc.py
index ef1d9cc16..7affa5f87 100644
--- a/ietf/doc/views_doc.py
+++ b/ietf/doc/views_doc.py
@@ -819,10 +819,15 @@ def document_history(request, name):
 
 
 def document_bibtex(request, name, rev=None):
-    # If URL_REGEXPS put trailing digits in rev, they must be two digits
+    # Make sure URL_REGEXPS did not grab too much for the rev number
     if rev != None and len(rev) != 2:
-        name = name+"-"+rev
-        rev = None
+        mo = re.search(r"^(?P<m>[0-9]{1,2})-(?P<n>[0-9]{2})$", rev)
+        if mo:
+            name = name+"-"+mo.group(1)
+            rev = mo.group(2)
+        else:
+            name = name+"-"+rev
+            rev = None
 
     doc = get_object_or_404(Document, docalias__name=name)
 
@@ -862,9 +867,6 @@ def document_bibxml_ref(request, name, rev=None):
         raise Http404()
     if not name.startswith('draft-'):
         name = 'draft-'+name
-    if rev != None and len(rev) != 2:
-        name = name+"-"+rev
-        rev = None
     return document_bibxml(request, name, rev=rev)
     
 def document_bibxml(request, name, rev=None):
@@ -873,16 +875,21 @@ def document_bibxml(request, name, rev=None):
     if re.search(r'^rfc\d+$', name):
         raise Http404()
 
-    # If URL_REGEXPS put trailing digits in rev, they must be two digits
+    # Make sure URL_REGEXPS did not grab too much for the rev number
     if rev != None and len(rev) != 2:
-        name = name+"-"+rev
-        rev = None
+        mo = re.search(r"^(?P<m>[0-9]{1,2})-(?P<n>[0-9]{2})$", rev)
+        if mo:
+            name = name+"-"+mo.group(1)
+            rev = mo.group(2)
+        else:
+            name = name+"-"+rev
+            rev = None
 
     doc = get_object_or_404(Document, name=name, type_id='draft')
 
     latest_revision = doc.latest_event(NewRevisionDocEvent, type="new_revision")
     latest_rev = latest_revision.rev if latest_revision else None
-        
+
     if rev != None:
         # find the entry in the history
         for h in doc.history_set.order_by("-time"):
diff --git a/ietf/templates/doc/bibxml.xml b/ietf/templates/doc/bibxml.xml
index 63ff25a98..afc7234a6 100644
--- a/ietf/templates/doc/bibxml.xml
+++ b/ietf/templates/doc/bibxml.xml
@@ -16,5 +16,5 @@
    </front>
    <seriesInfo name="Internet-Draft" value="{{name}}-{{doc.rev}}" />
    {% if doi %}<seriesInfo name="DOI" value="{{doi}}" />
-   {% endif %}<format type="TXT" target="https://www.ietf.org/internet-drafts/{{name}}-{{doc.rev}}.txt" />
+   {% endif %}<format type="TXT" target="https://www.ietf.org/archive/id/{{name}}-{{doc.rev}}.txt" />
 </reference>