diff --git a/mapping.go b/mapping.go
index 57acfd20d40db8262bdecb663f4982f75e37d255..dd1e3de65dda45f5cd8ca3ce65a8acae2912b6e9 100644
--- a/mapping.go
+++ b/mapping.go
@@ -55,12 +55,9 @@ func (s *Settings[C]) assignValues(c cmd[C]) {
 
 		if c.proxyMapping[k] != "" {
 			p = c.proxyMapping[k]
+			s.mapping[p] = value
 		}
 
-		s.mapping[p] = value
-
-		return
-
 	})
 
 }
diff --git a/parse.go b/parse.go
index c0e9865608311d6141d2958e39a6f10d93a7878f..75e9ed018c9f05057419cb0d5203d920dc9cb940 100644
--- a/parse.go
+++ b/parse.go
@@ -38,7 +38,7 @@ func (s *Settings[C]) Parse(args []string) *Settings[C] {
 
 	s.command.parse(r)
 
-	if s.mapping != nil && s.proxy != nil {
+	if s.mapping != nil && len(s.mapping) > 0 && s.proxy != nil {
 		s.proxy.Copy(s.mapping)
 	}