diff --git a/ethstats/ethstats.go b/ethstats/ethstats.go
index 9d494b615d62b55fc31d0559091af472d6118704..10f611c7950af978a7a0f010758795ed7dc8ecfd 100644
--- a/ethstats/ethstats.go
+++ b/ethstats/ethstats.go
@@ -23,10 +23,10 @@ import (
 	"fmt"
 	"math/big"
 	"net"
-	"net/url"
 	"regexp"
 	"runtime"
 	"strconv"
+	"strings"
 	"time"
 
 	"github.com/ethereum/go-ethereum/common"
@@ -128,7 +128,7 @@ func (s *Service) loop() {
 		path := fmt.Sprintf("%s/api", s.host)
 		urls := []string{path}
 
-		if parsed, err := url.Parse(path); err == nil && !parsed.IsAbs() {
+		if !strings.Contains(path, "://") { // url.Parse and url.IsAbs is unsuitable (https://github.com/golang/go/issues/19779)
 			urls = []string{"wss://" + path, "ws://" + path}
 		}
 		// Establish a websocket connection to the server on any supported URL