diff --git a/Makefile b/Makefile
index 5de5d44197c6f9408905f92c7fb3313e19dfd887..4d0ff32749abca5f275924813b8f90e9d67acf34 100644
--- a/Makefile
+++ b/Makefile
@@ -90,7 +90,7 @@ lib/%.a: $(PKGFILES)
 build_golib: lib/libgoshim.a
 
 build_gui:
-	@XBUILD=no TARGET=${TARGET} VENDOR_PATH=${VENDOR_PATH}/${PROVIDER} gui/build.sh --skip-golib
+	@XBUILD=no TARGET=${TARGET} VENDOR_PATH=${VENDOR_PATH} gui/build.sh --skip-golib
 
 build: build_golib build_helper build_openvpn build_gui
 
@@ -126,14 +126,18 @@ endif
 ifeq (${PLATFORM}, windows)
 	@VERSION=${VERSION} VENDOR_PATH=${VENDOR_PATH} ${SCRIPTS}/gen-qtinstaller windows ${INSTALLER}
 	@cp build/bin/${PLATFORM}/bitmask-helper ${INST_DATA}helper.exe
+ifeq (${VENDOR_PATH}, providers)
 	@cp ${VENDOR_PATH}/${PROVIDER}/assets/icon.ico ${INST_DATA}/icon.ico
+else
+	@cp ${VENDOR_PATH}/assets/icon.ico ${INST_DATA}/icon.ico
+endif
 	@cp ${QTBUILD}/release/${TARGET}.exe ${INST_DATA}${TARGET}.exe
 	# FIXME get the signed binaries with curl from openvpn downloads page - see if we have to adapt the openvpn-build to install tap drivers etc from our installer.
 	@cp "/c/Program Files/OpenVPN/bin/openvpn.exe" ${INST_DATA}
 	@cp "/c/Program Files/OpenVPN/bin/"*.dll ${INST_DATA}
-	# XXX add sign options
+	# FIXME add sign options
 	@windeployqt --qmldir gui/qml ${INST_DATA}${TARGET}.exe
-	# TODO stage it to save time
+	# TODO stage it to shave some time
 	@wget ${TAP_WINDOWS} -O ${INST_DATA}/tap-windows.exe
 endif
 ifeq (${PLATFORM}, linux)
@@ -141,7 +145,7 @@ ifeq (${PLATFORM}, linux)
 endif
 	@echo "[+] All templates, binaries and libraries copied to build/installer."
 	@echo "[+] Now building the installer."
-	@cd build/installer && qmake INSTALLER=${APPNAME}-installer-${VERSION} && make
+	@cd build/installer && qmake VENDOR_PATH=${VENDOR_PATH} INSTALLER=${APPNAME}-installer-${VERSION} && make
 
 check_qtifw: 
 ifdef HAS_QTIFW
@@ -150,36 +154,10 @@ else
 	$(error "[!] Cannot find QTIFW. Please install it and add it to your PATH")
 endif
 
-# ----------- FIXME ------- old build, reuse or delete -----------------------------
-
-CROSS_WIN_FLAGS = CGO_ENABLED=1 GOARCH=386 GOOS=windows CC="/usr/bin/i686-w64-mingw32-gcc" CGO_LDFLAGS="-lssp" CXX="i686-w64-mingw32-c++"
-PLATFORM_WIN = PLATFORM=windows
-EXTRA_LDFLAGS_WIN = EXTRA_LDFLAGS="-H=windowsgui" 
-build_cross_win:
-	@echo "[+] Cross-building for windows..."
-	@$(CROSS_WIN_FLAGS) $(PLATFORM_WIN) $(EXTRA_LDFLAGS_WIN) $(MAKE) _buildparts
-	# workaround for helper: we use the go compiler
-	@echo "[+] Compiling helper with the Go compiler to work around missing stdout bug..."
-	cd cmd/bitmask-helper && GOOS=windows GOARCH=386 go build -ldflags "-X main.version=`git describe --tags` -H=windowsgui" -o ../../build/bin/windows/bitmask-helper-go
-
-CROSS_OSX_FLAGS = MACOSX_DEPLOYMENT_TARGET=10.10 CGO_ENABLED=1 GOOS=darwin CC="o64-clang"
-PLATFORM_OSX = PLATFORM=darwin
-build_cross_osx:
-	$(CROSS_OSX_FLAGS) $(PLATFORM_OSX) $(MAKE) _buildparts
-
-# --------- FIXME -----------------------------------------------------------------------
-
 clean:
 	@rm -rf build/
 	@unlink branding/assets/default || true
 
-#########################################################################
-# build them all
-#########################################################################
-
-build_all_providers:
-	branding/scripts/build-all-providers
-
 ########################################################################
 # tests
 #########################################################################
@@ -230,28 +208,36 @@ tgz:
 	@cd build/ && tar czf bitmask-vpn_$(VERSION).tgz ${TGZ_NAME}
 	@rm -rf $(TGZ_PATH)
 
-# FIXME port --------------------------------------------------------------------------------------------------
 
 gen_pkg_deb:
+ifeq (${PLATFORM}, linux)
 	@cp -r ${TEMPLATES}/debian build/${PROVIDER}
 	@VERSION=${VERSION} VENDOR_PATH=${VENDOR_PATH} ${SCRIPTS}/generate-debian build/${PROVIDER}/debian/data.json
 	@mkdir -p build/${PROVIDER}/debian/icons/scalable && cp ${VENDOR_PATH}/${PROVIDER}/assets/icon.svg build/${PROVIDER}/debian/icons/scalable/icon.svg
 	@cd build/${PROVIDER}/debian && python3 generate.py
 	@cd build/${PROVIDER}/debian && rm app.desktop-template changelog-template rules-template control-template generate.py data.json && chmod +x rules
+endif
 
 gen_pkg_snap:
+ifeq (${PLATFORM}, linux)
 	@cp -r ${TEMPLATES}/snap build/${PROVIDER}
 	@VERSION=${VERSION} VENDOR_PATH=${VENDOR_PATH} ${SCRIPTS}/generate-snap build/${PROVIDER}/snap/data.json
 	@cp helpers/se.leap.bitmask.snap.policy build/${PROVIDER}/snap/local/pre/
 	@cp helpers/bitmask-root build/${PROVIDER}/snap/local/pre/
 	@cd build/${PROVIDER}/snap && python3 generate.py
 	@rm build/${PROVIDER}/snap/data.json build/${PROVIDER}/snap/snapcraft-template.yaml
-	@mkdir -p build/${PROVIDER}/snap/gui && cp ${VENDOR_PATH}/${PROVIDER}/assets/icon.svg build/${PROVIDER}/snap/gui/icon.svg
+	@mkdir -p build/${PROVIDER}/snap/gui
+ifeq (${VENDOR_PATH}, providers)
+	@cp ${VENDOR_PATH}/${PROVIDER}/assets/icon.svg build/${PROVIDER}/snap/gui/icon.svg
 	# FIXME is this png needed?? then add it to ASSETS_REQUIRED
 	@cp ${VENDOR_PATH}/${PROVIDER}/assets/icon.png build/${PROVIDER}/snap/gui/${PROVIDER}-vpn.png
+else
+	@cp ${VENDOR_PATH}/assets/icon.svg build/${PROVIDER}/snap/gui/icon.svg
+	@cp ${VENDOR_PATH}/assets/icon.png build/${PROVIDER}/snap/gui/${PROVIDER}-vpn.png
+endif
 	@rm build/${PROVIDER}/snap/generate.py
+endif
 
-# ---------------------------------------------------------------------------------------------------------------------
 
 
 #########################################################################
diff --git a/bitmask.pro b/bitmask.pro
index c22ee8c7d235f4061d39f8540c2a002ede50a76a..1601b46b8aafa42c6a640efe4211a915adcc75b8 100644
--- a/bitmask.pro
+++ b/bitmask.pro
@@ -7,6 +7,7 @@ lessThan(QT_MAJOR_VERSION, 5): error("requires Qt 5")
 QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.11
 
 !defined(VENDOR_PATH, var):VENDOR_PATH="providers/riseup"
+message("[qmake] VENDOR_PATH: $$VENDOR_PATH")
 
 RESOURCES += gui/gui.qrc
 RESOURCES += $$VENDOR_PATH/vendor.qrc
diff --git a/branding/scripts/provider.py b/branding/scripts/provider.py
index 8904c37843b70d0c7616bda60d0d4d3bdc51af09..22b36fdfbd5d73f6d57b89c0c5da8c23d591ec58 100644
--- a/branding/scripts/provider.py
+++ b/branding/scripts/provider.py
@@ -25,10 +25,11 @@ def getProviderData(provider, config):
             'providerURL', 'tosURL', 'helpURL',
             'askForDonations', 'donateURL', 'apiURL',
             'geolocationAPI', 'caCertString')
+    boolValues = ['askForDonations', 'authEmptyPass']
 
     for value in keys:
         d[value] = c.get(value)
-        if value == 'askForDonations':
+        if value in boolValues:
             d[value] = bool(d[value])
 
     d['timeStamp'] = '{:%Y-%m-%d %H:%M:%S}'.format(
diff --git a/gui/build.sh b/gui/build.sh
index c3d16995a66a6751945a2995f7d90e3e8ebfa9f0..2262d095579c5f0d2b22ee8c7479711ee6fb97d2 100755
--- a/gui/build.sh
+++ b/gui/build.sh
@@ -6,6 +6,8 @@ set -e
 # --------------------
 
 XBUILD=${XBUILD-no}
+VENDOR_PATH=${VENDOR_PATH-providers/riseup}
+
 OSX_TARGET=10.11
 WIN64="win64"
 GO=`which go`
@@ -16,7 +18,6 @@ SOURCE_GOLIB=gui/backend.go
 
 QTBUILD=build/qt
 RELEASE=$QTBUILD/release
-VENDOR_PATH=${VENDOR_PATH-providers/riseup}
 
 PLATFORM=$(uname -s)
 LDFLAGS=""
@@ -58,7 +59,7 @@ function buildGoLib {
     fi
     if [ "$PLATFORM" == "MINGW64_NT-10.0" ]
     then
-	LDFLAGS="-H=windowsgui"
+	LDFLAGS="-H windowsgui"
     fi
     if [ "$XBUILD" == "no" ]
     then
@@ -76,9 +77,8 @@ function buildGoLib {
 function buildQmake {
     echo "[+] Now building Qml app with Qt qmake"
     echo "[+] Using qmake in:" $QMAKE
-    echo "[+] VENDOR_PATH:" $VENDOR_PATH
     mkdir -p $QTBUILD
-    $QMAKE -o $QTBUILD/Makefile "CONFIG-=debug CONFIG+=release VENDOR_PATH=${VENDOR_PATH}" $PROJECT
+    $QMAKE -o "$QTBUILD/Makefile" CONFIG-=debug CONFIG+=release VENDOR_PATH=${VENDOR_PATH} $PROJECT
 }
 
 function renameOutput {
@@ -118,6 +118,7 @@ function buildDefault {
 }
 
 
+echo "[build.sh] VENDOR_PATH =" ${VENDOR_PATH}
 for i in "$@"
 do
 case $i in
diff --git a/pkg/vpn/launcher.go b/pkg/vpn/launcher.go
index 234a89cc95670ba434dcecc0902f93efdb961673..eb3794c086f537704238d4e377123da6e93bd2ce 100644
--- a/pkg/vpn/launcher.go
+++ b/pkg/vpn/launcher.go
@@ -47,11 +47,12 @@ func probeHelperPort(port int) int {
 			return port
 		}
 		port++
-		if port > 65535 {
+		/* we could go until 65k, but there's really no need */
+		if port > 10000 {
 			break
 		}
 	}
-	log.Println("WARN: Cannot find working helper")
+	log.Println("WARN: Cannot find any working helper")
 	return 0
 }
 
@@ -72,6 +73,7 @@ func smellsLikeOurHelperSpirit(port int, c *http.Client) bool {
 			return true
 		} else {
 			log.Println("DEBUG: Another helper seems to be running:", string(ver))
+			log.Println("DEBUG: But we were hoping to find:", config.ApplicationName)
 		}
 	}
 	return false
diff --git a/pkg/vpn/openvpn.go b/pkg/vpn/openvpn.go
index 4997a34db08ae2a4756d6dff45ebc511ffd46a7e..c0ec2e1717a6e6e6d67ebeb94da47099fa6326e4 100644
--- a/pkg/vpn/openvpn.go
+++ b/pkg/vpn/openvpn.go
@@ -51,6 +51,9 @@ func (b *Bitmask) StartVPN(provider string) error {
 }
 
 func (b *Bitmask) CanStartVPN() bool {
+	/* FIXME this is not enough. We should check, if provider needs
+	* credentials, if we have a valid token, otherwise remove it and
+	make sure that we're asking for the credentials input */
 	return !b.bonafide.NeedsCredentials()
 }