diff --git a/modules/markup/markdown/goldmark.go b/modules/markup/markdown/goldmark.go
index 07e2e36e1d..ad77177db4 100644
--- a/modules/markup/markdown/goldmark.go
+++ b/modules/markup/markdown/goldmark.go
@@ -98,7 +98,8 @@ func (g *ASTTransformer) Transform(node *ast.Document, reader text.Reader, pc pa
 				}
 				prefix = strings.Replace(prefix, "/src/", "/media/", 1)
 
-				lnk := string(link)
+				lnk := strings.TrimLeft(string(link), "/")
+
 				lnk = giteautil.URLJoin(prefix, lnk)
 				link = []byte(lnk)
 			}
diff --git a/modules/markup/markdown/markdown_test.go b/modules/markup/markdown/markdown_test.go
index 5b3ef21fb6..0e340763ae 100644
--- a/modules/markup/markdown/markdown_test.go
+++ b/modules/markup/markdown/markdown_test.go
@@ -93,6 +93,19 @@ func TestRender_Images(t *testing.T) {
 	test(
 		"[!["+title+"]("+url+")]("+href+")",
 		`<p><a href="`+href+`" rel="nofollow"><img src="`+result+`" alt="`+title+`"/></a></p>`)
+
+	url = "/../../.images/src/02/train.jpg"
+	test(
+		"!["+title+"]("+url+")",
+		`<p><a href="`+result+`" rel="nofollow"><img src="`+result+`" alt="`+title+`"/></a></p>`)
+
+	test(
+		"[["+title+"|"+url+"]]",
+		`<p><a href="`+result+`" rel="nofollow"><img src="`+result+`" title="`+title+`" alt="`+title+`"/></a></p>`)
+	test(
+		"[!["+title+"]("+url+")]("+href+")",
+		`<p><a href="`+href+`" rel="nofollow"><img src="`+result+`" alt="`+title+`"/></a></p>`)
+
 }
 
 func testAnswers(baseURLContent, baseURLImages string) []string {