diff --git a/src/emu/screen.cpp b/src/emu/screen.cpp
index 22a55bdb53..c5931da497 100644
--- a/src/emu/screen.cpp
+++ b/src/emu/screen.cpp
@@ -650,12 +650,12 @@ void screen_device::allocate_scan_bitmaps()
 					else
 						m_scan_bitmaps[j].push_back(new bitmap_rgb32(effwidth, 1));
 				}
-				m_scan_widths.push_back(m_width);
+				m_scan_widths.push_back(effwidth);
 			}
 		}
 		else
 		{
-			for (int i = effheight; i < old_height; i++)
+			for (int i = old_height - 1 ; i >= effheight; i--)
 			{
 				for (int j = 0; j < 2; j++)
 				{
