| Index: service/datastore/properties.go | 
| diff --git a/service/datastore/properties.go b/service/datastore/properties.go | 
| index 11f62dc2939334b7581ee453aa541365b1c518cd..8ce5970def31e1939b3f69638c85bfca264e00de 100644 | 
| --- a/service/datastore/properties.go | 
| +++ b/service/datastore/properties.go | 
| @@ -431,7 +431,7 @@ func (pm PropertyMap) Save(withMeta bool) (PropertyMap, error) { | 
| } | 
| ret := make(PropertyMap, len(pm)) | 
| for k, v := range pm { | 
| -		if withMeta || len(k) == 0 || k[0] != '$' { | 
| +		if withMeta || !isMetaKey(k) { | 
| ret[k] = append(ret[k], v...) | 
| } | 
| } | 
| @@ -472,6 +472,12 @@ func (pm PropertyMap) Problem() error { | 
| return nil | 
| } | 
|  | 
| +func isMetaKey(k string) bool { | 
| +	// empty counts as a metakey since it's not a valid data key, but it's | 
| +	// not really a valid metakey either. | 
| +	return k == "" || k[0] == '$' | 
| +} | 
| + | 
| // GetMetaDefaultImpl is the implementation of PropertyLoadSaver.GetMetaDefault. | 
| // | 
| // It takes the normal GetMeta function, the key and the default, and returns | 
|  |