diff --git a/gui/qml/main.qml b/gui/qml/main.qml
index daffda221fa6da97eb591134f9808f5b52ec8077..3d83b317d7b6fd706bb46bbf148b5e12aa1bce68 100644
--- a/gui/qml/main.qml
+++ b/gui/qml/main.qml
@@ -181,6 +181,7 @@ ApplicationWindow {
             ctx = JSON.parse(jsonModel.getJson())
             // TODO pass QML_DEBUG variable to be hyper-verbose
             //console.debug(jsonModel.getJson())
+
             gwSelector.model = Object.keys(ctx.locations)
 
             if (ctx.donateDialog == 'true') {
diff --git a/pkg/backend/api.go b/pkg/backend/api.go
index 53800b357f902cfc7bfe79732cd091bbaf5a4536..96f3072ddbd30f987f03ad10511bda5a6e8399a0 100644
--- a/pkg/backend/api.go
+++ b/pkg/backend/api.go
@@ -81,6 +81,7 @@ func UseAutomaticGateway() {
 
 func SetTransport(label string) {
 	ctx.bm.SetTransport(label)
+	go trigger(OnStatusChanged)
 }
 
 func GetTransport() *C.char {
diff --git a/pkg/vpn/bonafide/gateways.go b/pkg/vpn/bonafide/gateways.go
index a0d41fbbc6de85e395bf5029f2034dbee8f29e3b..53ab320a221f9b03d44c3d689554e14f48ce4603 100644
--- a/pkg/vpn/bonafide/gateways.go
+++ b/pkg/vpn/bonafide/gateways.go
@@ -97,6 +97,9 @@ func (p *gatewayPool) listLocationFullness(transport string) map[string]float64
 	}
 	if len(p.recommended) != 0 {
 		for _, gw := range p.recommended {
+			if gw.gateway.Transport != transport {
+				continue
+			}
 			if _, ok := cm[gw.gateway.Location]; ok {
 				continue
 			}