diff --git a/partition/debug.go b/partition/debug.go
index ac487760bdcf0f7f11d8236251166fcb0b0fc07d..339c611947f08ffc23f9dd90ab6822631f38a138 100644
--- a/partition/debug.go
+++ b/partition/debug.go
@@ -59,12 +59,12 @@ Versions:
   </tr>
  </thead>
  <tbody>
- {{range .GlobalStatus.Sort}}
+ {{range $s := .GlobalStatus.Sort}}
   <tr>
-   <td>{{.Name}}</td>
-   <td>{{.Version}}</td>
-   <td>{{.Stamp}}</td>
-   <td>{{.Total}}</td>
+   <td><a href="{{$s.Target | httpize}}/debug/part/{{.Name}}">{{$s.Target}}</a></td>
+   <td>{{$s.Version}}</td>
+   <td>{{$s.Stamp}}</td>
+   <td>{{$s.Total}}</td>
   </tr>
  {{end}}
  </tbody>
diff --git a/partition/status.go b/partition/status.go
index b5e52d2065d84d19e1f4c92c97aba2c83a58d9a9..6bc7ba541ec848be7bcc241a5adb03b8ca063cb6 100644
--- a/partition/status.go
+++ b/partition/status.go
@@ -10,6 +10,7 @@ import (
 
 type PartitionStatus struct {
 	Name     string
+	Target   string
 	Version  string
 	Stamp    time.Time
 	Counters map[string]int
@@ -75,23 +76,24 @@ func target2addr(target string) string {
 func getPartitionStatus(name, target string) *PartitionStatus {
 	client, err := rpc.DialHTTP("tcp", target2addr(target))
 	if err != nil {
-		return &PartitionStatus{Name: name, Err: err}
+		return &PartitionStatus{Name: name, Target: target, Err: err}
 	}
 	defer client.Close()
 
 	req := &GetVersionRequest{Name: name}
 	var resp GetVersionResponse
 	if err := client.Call("Partition.GetVersion", req, &resp); err != nil {
-		return &PartitionStatus{Name: name, Err: err}
+		return &PartitionStatus{Name: name, Target: target, Err: err}
 	}
 	var sreq struct{}
 	var sresp PartitionStatsResponse
 	if err := client.Call("PartitionedService.GetStats", &sreq, &sresp); err != nil {
-		return &PartitionStatus{Name: name, Err: err}
+		return &PartitionStatus{Name: name, Target: target, Err: err}
 	}
 
 	return &PartitionStatus{
 		Name:     name,
+		Target:   target,
 		Version:  resp.Version,
 		Stamp:    resp.Stamp,
 		Counters: sresp.Counters,
@@ -112,7 +114,7 @@ func getGlobalPartitionStatus(pmap *PartitionMap, name string) statusMap {
 	status := make(statusMap)
 	for i := 0; i < len(targets); i++ {
 		result := <-c
-		status[result.Name] = result
+		status[result.Target] = result
 	}
 	return status
 }