diff --git a/issue_2_test.go b/issue_2_test.go
index a86b84bee9ee82c8ec6091232c88fba15f1a9d3c..f9d652ffd3caa5a937310b173eff297296715391 100644
--- a/issue_2_test.go
+++ b/issue_2_test.go
@@ -135,7 +135,17 @@ func TestReplacePathForConfig(t *testing.T) {
 		},
 	}
 
+	nn, err2 := GetValue[MainTestStruct](config, "Sub.Default.Paths.Template")
+	assert.Nil(t, err2)
+
+	assert.Equal(t, nn, PathValue("../../../default.html"))
+
 	err := SetValue[*MainTestStruct](&config, "Sub.Default.Paths.Template", "test")
 	assert.Nil(t, err)
 
+	nn, err3 := GetValue[MainTestStruct](config, "Sub.Default.Paths.Template")
+	assert.Nil(t, err3)
+
+	assert.Equal(t, nn, PathValue("test"))
+
 }
diff --git a/issue_7_test.go b/issue_7_test.go
index 20c31d39328c8798c73b74343a645bebfb6762d0..7eb118b001fdb35f5aebd26d95c95ea2ad8c1175 100644
--- a/issue_7_test.go
+++ b/issue_7_test.go
@@ -1,20 +1,10 @@
 package pathfinder
 
 import (
+	"github.com/stretchr/testify/assert"
 	"testing"
 )
 
-//// Ihre Fehlerdefinitionen
-//func newInvalidPathError(path string) error {
-//	return fmt.Errorf("invalid path: %s", path)
-//}
-//
-//func newCannotSetError(path string) error {
-//	return fmt.Errorf("cannot set: %s", path)
-//}
-
-// ... weitere Fehlerdefinitionen
-
 // Test für SetValue
 func TestSetValue(t *testing.T) {
 	type Inner struct {
@@ -23,13 +13,22 @@ func TestSetValue(t *testing.T) {
 	type Outer struct {
 		InnerField *Inner
 	}
+
 	obj := &Outer{
 		InnerField: &Inner{
 			Field: "oldValue",
 		},
 	}
 
-	err := SetValue(obj, "InnerField.Field", PathValue("newValue"))
+	v, err := GetValue[Outer](*obj, "InnerField.Field")
+	if err != nil {
+		t.Error(err)
+	}
+
+	assert.Equal(t, v, PathValue("oldValue"))
+
+	nv := PathValue("newValue")
+	err = SetValue[*Outer](obj, "InnerField.Field", nv)
 	if err != nil {
 		t.Fatalf("unexpected error: %v", err)
 	}
@@ -37,4 +36,12 @@ func TestSetValue(t *testing.T) {
 	if obj.InnerField.Field != "newValue" {
 		t.Fatalf("expected newValue, got: %s", obj.InnerField.Field)
 	}
+
+	v, err = GetValue[Outer](*obj, "InnerField.Field")
+	if err != nil {
+		t.Error(err)
+	}
+
+	assert.Equal(t, v, nv)
+
 }
diff --git a/set.go b/set.go
index 1c2babb1eca4db438c852ce643926da170b51861..1c1a387e62734d9361286e3fd1d1757285082b65 100644
--- a/set.go
+++ b/set.go
@@ -51,7 +51,14 @@ func SetValue[D any](obj D, keyWithDots string, newValue any) error {
 				return newCannotSetError("Wert ist nicht adressierbar")
 			}
 			newKey := strings.Join(keySlice[keyIndex+1:], ".")
-			return SetValue(newValueCopyPtr, newKey, newValue)
+			err := SetValue(newValueCopyPtr, newKey, newValue)
+			if err != nil {
+				return err
+			}
+
+			v.SetMapIndex(reflect.ValueOf(key), reflect.ValueOf(newValueCopy).Elem())
+			return nil
+
 		}
 
 		if v.Kind() == reflect.Ptr && v.Elem().Kind() == reflect.Interface {