diff --git a/ethstats/ethstats.go b/ethstats/ethstats.go
index a5fa84468e0777ba8b97fe10400f3b85682cada8..19f9cfba505f719a773ded8436340785a0d01ed8 100644
--- a/ethstats/ethstats.go
+++ b/ethstats/ethstats.go
@@ -25,6 +25,7 @@ import (
 	"regexp"
 	"runtime"
 	"strconv"
+	"strings"
 	"time"
 
 	"github.com/ethereum/go-ethereum/common"
@@ -115,7 +116,11 @@ func (s *Service) loop() {
 	// Loop reporting until termination
 	for {
 		// Establish a websocket connection to the server and authenticate the node
-		conn, err := websocket.Dial(fmt.Sprintf("wss://%s/api", s.host), "", "http://localhost/")
+		url := fmt.Sprintf("%s/api", s.host)
+		if !strings.Contains(url, "://") {
+			url = "wss://" + url
+		}
+		conn, err := websocket.Dial(url, "", "http://localhost/")
 		if err != nil {
 			glog.V(logger.Warn).Infof("Stats server unreachable: %v", err)
 			time.Sleep(10 * time.Second)
@@ -297,6 +302,7 @@ func (s *Service) reportLatency(in *json.Decoder, out *json.Encoder) error {
 type blockStats struct {
 	Number    *big.Int       `json:"number"`
 	Hash      common.Hash    `json:"hash"`
+	Timestamp *big.Int       `json:"timestamp"`
 	Miner     common.Address `json:"miner"`
 	GasUsed   *big.Int       `json:"gasUsed"`
 	GasLimit  *big.Int       `json:"gasLimit"`
@@ -362,6 +368,7 @@ func (s *Service) reportBlock(out *json.Encoder, block *types.Block) error {
 		"block": &blockStats{
 			Number:    head.Number,
 			Hash:      head.Hash(),
+			Timestamp: head.Time,
 			Miner:     head.Coinbase,
 			GasUsed:   new(big.Int).Set(head.GasUsed),
 			GasLimit:  new(big.Int).Set(head.GasLimit),