diff --git a/present/present_scmd.c b/present/present_scmd.c
index da836ea6bc8d0f66a5ae714e1cce49d1a885d108..239055bc10d8c934555356c4213cda37dbff711e 100644
--- a/present/present_scmd.c
+++ b/present/present_scmd.c
@@ -158,6 +158,9 @@ present_scmd_get_crtc(present_screen_priv_ptr screen_priv, WindowPtr window)
     if (!screen_priv->info)
         return NULL;
 
+    if (!screen_priv->info->get_crtc)
+        return NULL;
+
     return (*screen_priv->info->get_crtc)(window);
 }
 
@@ -196,6 +199,9 @@ present_flush(WindowPtr window)
     if (!screen_priv->info)
         return;
 
+    if (!screen_priv->info->flush)
+        return;
+
     (*screen_priv->info->flush) (window);
 }