diff --git a/scribble-lib/scribble/html-render.rkt b/scribble-lib/scribble/html-render.rkt
index 978c5f88..c97c28ec 100644
--- a/scribble-lib/scribble/html-render.rkt
+++ b/scribble-lib/scribble/html-render.rkt
@@ -1336,10 +1336,15 @@
`((a ([href
,(cond
[(and ext-id external-root-url
- (let ([rel (find-relative-path
- (find-doc-dir)
- (relative->path (dest-path dest)))])
- (and (relative-path? rel)
+ (let* ([ref-path (relative->path (dest-path dest))]
+ [rel (if (relative-path? ref-path)
+ #f
+ (find-relative-path
+ (find-doc-dir)
+ ref-path))])
+ (and rel
+ (relative-path? rel)
+ (not (memq 'up (explode-path rel)))
rel)))
=> (lambda (rel)
(url->string*