diff --git a/connection.go b/connection.go
index <HASH>..<HASH> 100644
--- a/connection.go
+++ b/connection.go
@@ -66,11 +66,20 @@ func (cn *connection) WriteStatus(w io.Writer) {
 		fmt.Fprintf(w, "%c", b)
 	}
 	// https://trac.transmissionbt.com/wiki/PeerStatusText
+	if cn.PeerInterested && !cn.Choked {
+		c('O')
+	}
 	if len(cn.Requests) != 0 {
 		c('D')
-	} else if cn.Interested {
+	}
+	if cn.PeerChoked && cn.Interested {
 		c('d')
 	}
+	if !cn.Choked && cn.PeerInterested {
+		c('U')
+	} else {
+		c('u')
+	}
 	if !cn.PeerChoked && !cn.Interested {
 		c('K')
 	}
Add some extra char flags to connection status