diff --git a/config/base_config.go b/config/base_config.go
index 5cb57ffb6d2a8e5a3190057491a478ae102bea83..54ad8aba368c7d9477faad6fbd97c5dccd32dca1 100644
--- a/config/base_config.go
+++ b/config/base_config.go
@@ -179,13 +179,16 @@ func setFieldValue(val reflect.Value, id reflect.Value, config *config.InmemoryC
 				}
 				if f.Kind() == reflect.Map {
 
-					//initiate config
-					s := reflect.New(f.Type().Elem().Elem())
-					prefix := s.MethodByName("Prefix").Call(nil)[0].String()
-					m := config.GetSubProperty(prefix)
-					for k := range m {
-						f.SetMapIndex(reflect.ValueOf(k), reflect.New(f.Type().Elem().Elem()))
+					if f.Type().Elem().Kind() == reflect.Ptr {
+						//initiate config
+						s := reflect.New(f.Type().Elem().Elem())
+						prefix := s.MethodByName("Prefix").Call(nil)[0].String()
+						m := config.GetSubProperty(prefix)
+						for k := range m {
+							f.SetMapIndex(reflect.ValueOf(k), reflect.New(f.Type().Elem().Elem()))
+						}
 					}
+
 					//iter := f.MapRange()
 
 					for _, k := range f.MapKeys() {