diff --git a/http.go b/http.go
index 702c35bcf25c9268d7bdbef25da4bb291a085795..ed4504dd74ec030f7a9dda674178759df3a95ba9 100644
--- a/http.go
+++ b/http.go
@@ -116,5 +116,9 @@ func (h *HttpRedirector) serveSource(w http.ResponseWriter, r *http.Request) {
 }
 
 func (h *HttpRedirector) ServeHTTP(w http.ResponseWriter, r *http.Request) {
-	// TODO: pick between serveRelay() and serveSource().
+	if r.Method == "SOURCE" {
+		serveSource(w, r)
+	} else {
+		serveRelay(w, r)
+	}
 }