diff --git a/package/network/ipv6/map/Makefile b/package/network/ipv6/map/Makefile
index 2a029f8fe8cbd021665054dc9347c665787411db..09ba523ec08ef75420662ce69cc8f5f4f3deb61d 100644
--- a/package/network/ipv6/map/Makefile
+++ b/package/network/ipv6/map/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=map
 PKG_VERSION:=3
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 PKG_LICENSE:=GPL-2.0
 
 include $(INCLUDE_DIR)/package.mk
diff --git a/package/network/ipv6/map/src/mapcalc.c b/package/network/ipv6/map/src/mapcalc.c
index b4b3d736f006730c2fe56315c0d637e4cc42accf..b61e157fc39d073cfc5950d92dfe22900b806c5b 100644
--- a/package/network/ipv6/map/src/mapcalc.c
+++ b/package/network/ipv6/map/src/mapcalc.c
@@ -226,6 +226,9 @@ int main(int argc, char *argv[])
 		if (offset < 0)
 			offset = (lw4o6) ? 0 : (legacy) ? 4 : 6;
 
+		if (lw4o6 && ealen < 0 && psidlen >= 0)
+			ealen = psidlen;
+
 		// Find PD
 		struct blob_attr *c, *cur;
 		unsigned rem;