lots of legacy code are working this way and some others are not. I'm really confused when I was making this patch. May I know which one is you preferred?