diff --git a/exa/exa.c b/exa/exa.c
index d12344f..ba82382 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -59,7 +59,11 @@ exaGetPixmapOffset(PixmapPtr pPix)
ExaScreenPriv(pPix->drawable.pScreen);
ExaPixmapPriv(pPix);
- return (CARD8 *) pExaPixmap->fb_ptr - pExaScr->info->memoryBase;
+ /* added in as a fix for 6912996 */
+ if (exaPixmapHasGpuCopy(pPix) && pExaPixmap->fb_ptr)
+ return (CARD8 *) pExaPixmap->fb_ptr - pExaScr->info->memoryBase;
+ else
+ return (CARD8 *) pExaPixmap->sys_ptr - pExaScr->info->memoryBase;
}
void *