diff --git a/src/dd.c b/src/dd.c
index e0d99be..313464b 100644
--- a/src/dd.c
+++ b/src/dd.c
@@ -1163,8 +1163,8 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
             real_SetWindowPos(
                 g_ddraw.textbox.hwnd,
                 0,
-                g_ddraw.textbox.x * g_ddraw.render.scale_w,
-                g_ddraw.textbox.y * g_ddraw.render.scale_h,
+                g_ddraw.render.viewport.x + (g_ddraw.textbox.x * g_ddraw.render.scale_w),
+                g_ddraw.render.viewport.y + (g_ddraw.textbox.y * g_ddraw.render.scale_h),
                 0,
                 0,
                 SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER
diff --git a/src/winapi_hooks.c b/src/winapi_hooks.c
index 8a58b46..6ac4530 100644
--- a/src/winapi_hooks.c
+++ b/src/winapi_hooks.c
@@ -381,8 +381,8 @@ BOOL WINAPI fake_MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BO
                 g_ddraw.textbox.x = X;
                 g_ddraw.textbox.y = Y;
 
-                X *= g_ddraw.render.scale_w;
-                Y *= g_ddraw.render.scale_h;
+                X = g_ddraw.render.viewport.x + (X * g_ddraw.render.scale_w);
+                Y = g_ddraw.render.viewport.y + (Y * g_ddraw.render.scale_h);
             }
         }
     }