diff --git a/gui/providers/providers.json b/gui/providers/providers.json
index 2401866e5a6d0811f89697fbeaebb0d1b8102a90..8592ba052e277cb23bdfc62ea1b3e22a5b63072b 100644
--- a/gui/providers/providers.json
+++ b/gui/providers/providers.json
@@ -1,21 +1,21 @@
 {
-    "default": "floatdemo",
+    "default": "riseup",
     "providers": [
         {
-            "name": "floatdemo",
-            "applicationName": "FloatDemoVPN",
-            "binaryName": "floatdemo-vpn",
+            "name": "Riseup",
+            "applicationName": "RiseupVPN",
+            "binaryName": "riseup-vpn",
             "auth": "anon",
             "authEmptyPass": false,
-            "providerURL": "float.bitmask.net",
-            "tosURL": "https://float.bitmask.net/",
-            "helpURL": "https://float.bitmask.net/",
+            "providerURL": "riseup.net",
+            "tosURL": "https://riseup.net/tos",
+            "helpURL": "https://riseup.net/support",
             "askForDonations": true,
-            "donateURL": "",
-            "apiURL": "https://api.float.bitmask.net:4430/",
-            "geolocationAPI": "https://menshen.float.bitmask.net/json",
-            "caCertString": "-----BEGIN CERTIFICATE-----\nMIIBQjCB6aADAgECAgEBMAoGCCqGSM49BAMCMBcxFTATBgNVBAMTDExFQVAgUm9v\ndCBDQTAeFw0yMTA0MDYxODIzMzVaFw0yNjA0MDYxODI4MzVaMBcxFTATBgNVBAMT\nDExFQVAgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLiY2PRd7sct\n/d0qy0EHjP+MLA+bUOV2RjMErxZrQfok9bMAFFLza9dg0LTbsdLjved1f7ezraa1\nyTYD3i2NncWjJjAkMA4GA1UdDwEB/wQEAwICpDASBgNVHRMBAf8ECDAGAQH/AgEB\nMAoGCCqGSM49BAMCA0gAMEUCIEq2RG2egV566bOFzAL68qoOTVA3+58YYssn+Jrg\nadPSAiEAkYbYV5JLlA54lXy6XlZEmCCcVb7u/Domsk9smMQzWq4=\n-----END CERTIFICATE-----",
-            "timeStamp": "2021-07-07 19:38:08"
+            "donateURL": "https://riseup.net/vpn/donate",
+            "apiURL": "https://api.black.riseup.net/",
+            "geolocationAPI": "https://api.black.riseup.net:9001/json",
+            "caCertString": "-----BEGIN CERTIFICATE-----\nMIIFjTCCA3WgAwIBAgIBATANBgkqhkiG9w0BAQ0FADBZMRgwFgYDVQQKDA9SaXNl\ndXAgTmV0d29ya3MxGzAZBgNVBAsMEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UE\nAwwXUmlzZXVwIE5ldHdvcmtzIFJvb3QgQ0EwHhcNMTQwNDI4MDAwMDAwWhcNMjQw\nNDI4MDAwMDAwWjBZMRgwFgYDVQQKDA9SaXNldXAgTmV0d29ya3MxGzAZBgNVBAsM\nEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UEAwwXUmlzZXVwIE5ldHdvcmtzIFJv\nb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC76J4ciMJ8Sg0m\nTP7DF2DT9zNe0Csk4myoMFC57rfJeqsAlJCv1XMzBmXrw8wq/9z7XHv6n/0sWU7a\n7cF2hLR33ktjwODlx7vorU39/lXLndo492ZBhXQtG1INMShyv+nlmzO6GT7ESfNE\nLliFitEzwIegpMqxCIHXFuobGSCWF4N0qLHkq/SYUMoOJ96O3hmPSl1kFDRMtWXY\niw1SEKjUvpyDJpVs3NGxeLCaA7bAWhDY5s5Yb2fA1o8ICAqhowurowJpW7n5ZuLK\n5VNTlNy6nZpkjt1QycYvNycffyPOFm/Q/RKDlvnorJIrihPkyniV3YY5cGgP+Qkx\nHUOT0uLA6LHtzfiyaOqkXwc4b0ZcQD5Vbf6Prd20Ppt6ei0zazkUPwxld3hgyw58\nm/4UIjG3PInWTNf293GngK2Bnz8Qx9e/6TueMSAn/3JBLem56E0WtmbLVjvko+LF\nPM5xA+m0BmuSJtrD1MUCXMhqYTtiOvgLBlUm5zkNxALzG+cXB28k6XikXt6MRG7q\nhzIPG38zwkooM55yy5i1YfcIi5NjMH6A+t4IJxxwb67MSb6UFOwg5kFokdONZcwj\nshczHdG9gLKSBIvrKa03Nd3W2dF9hMbRu//STcQxOailDBQCnXXfAATj9pYzdY4k\nha8VCAREGAKTDAex9oXf1yRuktES4QIDAQABo2AwXjAdBgNVHQ4EFgQUC4tdmLVu\nf9hwfK4AGliaet5KkcgwDgYDVR0PAQH/BAQDAgIEMAwGA1UdEwQFMAMBAf8wHwYD\nVR0jBBgwFoAUC4tdmLVuf9hwfK4AGliaet5KkcgwDQYJKoZIhvcNAQENBQADggIB\nAGzL+GRnYu99zFoy0bXJKOGCF5XUXP/3gIXPRDqQf5g7Cu/jYMID9dB3No4Zmf7v\nqHjiSXiS8jx1j/6/Luk6PpFbT7QYm4QLs1f4BlfZOti2KE8r7KRDPIecUsUXW6P/\n3GJAVYH/+7OjA39za9AieM7+H5BELGccGrM5wfl7JeEz8in+V2ZWDzHQO4hMkiTQ\n4ZckuaL201F68YpiItBNnJ9N5nHr1MRiGyApHmLXY/wvlrOpclh95qn+lG6/2jk7\n3AmihLOKYMlPwPakJg4PYczm3icFLgTpjV5sq2md9bRyAg3oPGfAuWHmKj2Ikqch\nTd5CHKGxEEWbGUWEMP0s1A/JHWiCbDigc4Cfxhy56CWG4q0tYtnc2GMw8OAUO6Wf\nXu5pYKNkzKSEtT/MrNJt44tTZWbKV/Pi/N2Fx36my7TgTUj7g3xcE9eF4JV2H/sg\ntsK3pwE0FEqGnT4qMFbixQmc8bGyuakr23wjMvfO7eZUxBuWYR2SkcP26sozF9PF\ntGhbZHQVGZUTVPyvwahMUEhbPGVerOW0IYpxkm0x/eaWdTc4vPpf/rIlgbAjarnJ\nUN9SaWRlWKSdP4haujnzCoJbM7dU9bjvlGZNyXEekgeT0W2qFeGGp+yyUWw8tNsp\n0BuC1b7uW/bBn/xKm319wXVDvBgZgcktMolak39V7DVO\n-----END CERTIFICATE-----",
+            "timeStamp": "2021-07-09 20:10:58"
         }
     ]
 }
\ No newline at end of file
diff --git a/gui/qml/VPNSwitch.qml b/gui/qml/VPNSwitch.qml
index 14b37347f0a0bbaa475a8cbab60e9130366acddb..89c455f4ac3bb3c7d98698659e19f755a45ee07c 100644
--- a/gui/qml/VPNSwitch.qml
+++ b/gui/qml/VPNSwitch.qml
@@ -5,27 +5,10 @@ import QtQuick.Controls 2.4
 
 SwitchDelegate {
 
-    //id: vpntoggle
-
     text: qsTr("")
     checked: false
     anchors.horizontalCenter: parent.horizontalCenter
 
-    /*
-    Connections {
-        function onCheckedChanged() {
-            if (vpntoggle.checked == true
-                    && ctx.status == "off") {
-                backend.switchOn()
-            }
-            if (vpntoggle.checked === false
-                    && ctx.status == "on") {
-                backend.switchOff()
-            }
-        }
-    }
-    */
-
     contentItem: Text {
         rightPadding: vpntoggle.indicator.width + vpntoggle.spacing
         text: vpntoggle.text
diff --git a/gui/qml/VpnState.qml b/gui/qml/VpnState.qml
index 86239e433ebf025fdfef109783a226fe8747e6ce..a4bb779191c56d323cd411ed681c37f1702d703d 100644
--- a/gui/qml/VpnState.qml
+++ b/gui/qml/VpnState.qml
@@ -24,6 +24,7 @@ StateGroup {
             PropertyChanges {
                 target: vpntoggle
                 checked: false
+                checkable: true
             }
             PropertyChanges {
                 target: statusItem
@@ -65,6 +66,7 @@ StateGroup {
             PropertyChanges {
                 target: vpntoggle
                 checked: true
+                checkable: true
             }
             PropertyChanges {
                 target: statusItem
@@ -122,6 +124,11 @@ StateGroup {
                 target: mainCurrentGateway
                 text: ""
             }
+            PropertyChanges {
+                target: vpntoggle
+                checked: true
+                checkable: false
+            }
         },
         State {
             name: "stopping"
@@ -147,6 +154,11 @@ StateGroup {
                 target: mainCurrentGateway
                 text: ""
             }
+            PropertyChanges {
+                target: vpntoggle
+                checked: false
+                checkable: false
+            }
         },
         State {
             name: "failed"
@@ -172,6 +184,11 @@ StateGroup {
                 target: mainCurrentGateway
                 text: ""
             }
+            PropertyChanges {
+                target: vpntoggle
+                checked: false
+                checkable: true
+            }
         }
     ]
 }
diff --git a/gui/qml/main.qml b/gui/qml/main.qml
index 1d679242983da0f36ad55b6abfd07b6d97b6f9f7..e166d65a38ef1469ad4357d944a18356624c33a6 100644
--- a/gui/qml/main.qml
+++ b/gui/qml/main.qml
@@ -88,10 +88,12 @@ ApplicationWindow {
                                 if (vpntoggle.checked == true
                                         && ctx.status == "off") {
                                     backend.switchOn()
+                                    vpntoggle.checkable = false
                                 }
                                 if (vpntoggle.checked === false
                                         && ctx.status == "on") {
                                     backend.switchOff()
+                                    vpntoggle.checkable = false
                                 }
                             }
                         }
@@ -114,6 +116,7 @@ ApplicationWindow {
 
                 anchors.centerIn: parent
                 spacing: 10
+                //width: parent.width
 
                 RadioButton {
                     id: autoSelectionButton
@@ -124,12 +127,14 @@ ApplicationWindow {
                         manualSelectionItem.checked = false
                     }
                 }
+
                 RadioButton {
                     id: manualSelectionButton
                     checked: isManualLocation()
                     text: qsTr("Manual")
                     onClicked: setGwSelection()
                 }
+
                 ComboBox {
                     id: gwSelector
                     editable: false
@@ -139,6 +144,12 @@ ApplicationWindow {
                     model: [qsTr("Recommended")]
                     onActivated: {
                         console.debug("Selected gateway:", currentText)
+                        if (ctx.status == "off") {
+                            gwNextConnectionText.visible = true
+                        }
+                        if (ctx.status == "on") {
+                            gwReconnectText.visible = true
+                        }
                         backend.useLocation(currentText.toString())
                         manualSelectionItem.checked = true
                     }
@@ -170,7 +181,31 @@ ApplicationWindow {
                             color: "#000000"
                         }
                     }
+
+                }
+
+                Text {
+                    id: gwReconnectText
+                    anchors.horizontalCenter: parent.horizontalCenter
+                    width: 180
+                    font.pixelSize: 12
+                    color: "green"
+                    wrapMode: Text.WordWrap 
+                    text: qsTr("Reconnecting to the selected gateway…")
+                    visible: false
+                }
+
+                Text {
+                    id: gwNextConnectionText
+                    anchors.horizontalCenter: parent.horizontalCenter
+                    width: 180
+                    font.pixelSize: 12
+                    color: "green"
+                    wrapMode: Text.WordWrap 
+                    text: qsTr("This gateway will be used for next connection.")
+                    visible: false
                 }
+
             } // end column
         } // end item
 
@@ -214,6 +249,11 @@ ApplicationWindow {
             if (ctx.donateURL) {
                 donateItem.visible = true
             }
+
+            if (ctx.status == "on") {
+                gwNextConnectionText.visible = false
+                gwReconnectText.visible = false
+            }
         }
     }
 
diff --git a/pkg/vpn/openvpn.go b/pkg/vpn/openvpn.go
index 66820940c797326f6f76fbdd48a827018762a22b..3df5a23703b54f6341c4a38a70f386c0df0f3d53 100644
--- a/pkg/vpn/openvpn.go
+++ b/pkg/vpn/openvpn.go
@@ -121,6 +121,7 @@ func (b *Bitmask) listenShapeErr() {
 
 func (b *Bitmask) startOpenVPN() error {
 	arg := []string{}
+	b.statusCh <- Starting
 	if b.GetTransport() == "obfs4" {
 		gateways, err := b.bonafide.GetGateways("obfs4")
 		if err != nil {
@@ -251,8 +252,9 @@ func (b *Bitmask) Reconnect() error {
 	if err != nil {
 		return err
 	}
-	log.Println("reconnect")
+	log.Println("DEBUG Reconnecting")
 	if status != Off {
+		b.statusCh <- Stopping
 		if b.shapes != nil {
 			b.shapes.Close()
 			b.shapes = nil
@@ -264,6 +266,7 @@ func (b *Bitmask) Reconnect() error {
 	}
 
 	err = b.launch.firewallStop()
+	// FIXME - there's a window in which we might leak traffic here!
 	if err != nil {
 		return err
 	}