there is a MSC++ compilation bug here. Try to find a workaround.