diff --git a/present/present_scmd.c b/present/present_scmd.c
index da836ea6b..239055bc1 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);
 }
 
