diff --git a/httpbin/handlers.go b/httpbin/handlers.go
index 2837533cd4e6026f7bd0a6c39d3d0f06569ccde5..1343a023b1454c83270fb66746d2039ab278af7b 100644
--- a/httpbin/handlers.go
+++ b/httpbin/handlers.go
@@ -172,6 +172,18 @@ func (h *HTTPBin) Status(w http.ResponseWriter, r *http.Request) {
 		"accept":  acceptedMediaTypes,
 	})
 
+	http300body := []byte(`<!doctype html>
+<head>
+<title>Multiple Choices</title>
+</head>
+<body>
+<ul>
+<li><a href="/image/jpeg">/image/jpeg</a></li>
+<li><a href="/image/png">/image/png</a></li>
+<li><a href="/image/svg">/image/svg</a></li>
+</body>
+</html>`)
+
 	http308body := []byte(`<!doctype html>
 <head>
 <title>Permanent Redirect</title>
@@ -181,6 +193,12 @@ func (h *HTTPBin) Status(w http.ResponseWriter, r *http.Request) {
 </html>`)
 
 	specialCases := map[int]*statusCase{
+		300: {
+			body: http300body,
+			headers: map[string]string{
+				"Location": "/image/jpeg",
+			},
+		},
 		301: redirectHeaders,
 		302: redirectHeaders,
 		303: redirectHeaders,
diff --git a/httpbin/handlers_test.go b/httpbin/handlers_test.go
index 5bc6069abfe2daaa5b4e2870d7c5bf009e989cc6..e93f4f033300e736edbed642a1589df24d84692a 100644
--- a/httpbin/handlers_test.go
+++ b/httpbin/handlers_test.go
@@ -708,6 +708,17 @@ func TestStatus(t *testing.T) {
 		body    string
 	}{
 		{200, nil, ""},
+		{300, map[string]string{"Location": "/image/jpeg"}, `<!doctype html>
+<head>
+<title>Multiple Choices</title>
+</head>
+<body>
+<ul>
+<li><a href="/image/jpeg">/image/jpeg</a></li>
+<li><a href="/image/png">/image/png</a></li>
+<li><a href="/image/svg">/image/svg</a></li>
+</body>
+</html>`},
 		{301, redirectHeaders, ""},
 		{302, redirectHeaders, ""},
 		{308, map[string]string{"Location": "/image/jpeg"}, `<!doctype html>