diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index 043ceee..7880cfa 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -1778,10 +1778,9 @@ xf86RandR12EnterVT (int screen_index, int flags) Bool ret; if (randrp->orig_EnterVT) { - pScrn->EnterVT = randrp->orig_EnterVT; - ret = pScrn->EnterVT (screen_index, flags); - randrp->orig_EnterVT = pScrn->EnterVT; - pScrn->EnterVT = xf86RandR12EnterVT; + ret = randrp->orig_EnterVT (screen_index, flags); + if (pScrn->EnterVT == randrp->orig_EnterVT) + pScrn->EnterVT = xf86RandR12EnterVT; if (!ret) return FALSE; }