diff --git a/net/strongswan/Makefile b/net/strongswan/Makefile
index 25249c81e..d58afad99 100644
--- a/net/strongswan/Makefile
+++ b/net/strongswan/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=strongswan
 PKG_VERSION:=5.9.2
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://download.strongswan.org/ https://download2.strongswan.org/
diff --git a/net/strongswan/files/swanctl.init b/net/strongswan/files/swanctl.init
index 21fc7e8ec..344518e3c 100644
--- a/net/strongswan/files/swanctl.init
+++ b/net/strongswan/files/swanctl.init
@@ -160,11 +160,13 @@ add_esp_proposal() {
 
 parse_esp_proposal() {
 	local conf="$1"
+	local var="$2"
+
 	local crypto=""
 
 	config_list_foreach "$conf" crypto_proposal add_esp_proposal
 
-	echo "$crypto"
+	export -n "$var=$crypto"
 }
 
 add_ike_proposal() {
@@ -190,11 +192,13 @@ add_ike_proposal() {
 
 parse_ike_proposal() {
 	local conf="$1"
+	local var="$2"
+
 	local crypto=""
 
 	config_list_foreach "$conf" crypto_proposal add_ike_proposal
 
-	echo "$crypto"
+	export -n "$var=$crypto"
 }
 
 config_conn() {
@@ -228,7 +232,8 @@ config_conn() {
 	config_get if_id "$1" if_id ""
 	config_get rekeytime "$1" rekeytime ""
 
-	local esp_proposal="$(parse_esp_proposal "$1")"
+	local esp_proposal
+	parse_esp_proposal "$1" esp_proposal
 
 	# translate from ipsec to swanctl
 	case "$startaction" in
@@ -387,7 +392,8 @@ config_remote() {
 		local_gateway=`ip -o route get $ipdest | awk '/ src / { gsub(/^.* src /,""); gsub(/ .*$/, ""); print $0}'`
 	}
 
-	local ike_proposal="$(parse_ike_proposal "$1")"
+	local ike_proposal
+	parse_ike_proposal "$1" ike_proposal
 
 	[ -n "$firewall" ] && warning "Firewall not supported"