Thanks for your bug report. The reason for this is that you are using a negative value for the width. Ideally, all of the /draw identifiers should report errors when negative values are specified, however they have worked in the same way for over twenty years, so they need to be left as they are. It just happens that when you specify negative values for width or height that these are passed directly to BitBlt(), which handles negative values in its own way. However, there may be many interim calculations and/or API calls before BitBlt() is called, none of which have specific support for negative values. So you are, in fact, depending on undefined behaviour. If you want to use negative values, you will to need to cater for the current behaviour in your script.