-    else
-        m_graphicContext->DrawBitmap( bmp, x , y , bmp.GetWidth() , bmp.GetHeight() );
+    else // not a monochrome bitmap, handle it normally
+    {
+        // make a copy in case we need to remove its mask, if we don't modify
+        // it the copy is cheap as bitmaps are reference-counted
+        wxBitmap bmpCopy(bmp);
+        if ( !useMask && bmp.GetMask() )
+            bmpCopy.SetMask(NULL);
+
+        m_graphicContext->DrawBitmap( bmpCopy, x, y, w, h );
+    }