diff --git gdk/orig.gdkmonitor.c gdk/gdkmonitor.c
index 4d413a5..526a326 100644
--- gdk/orig.gdkmonitor.c
+++ gdk/gdkmonitor.c
@@ -260,9 +260,8 @@ gdk_monitor_class_init (GdkMonitorClass *class)
 GdkDisplay *
 gdk_monitor_get_display (GdkMonitor *monitor)
 {
-  g_return_val_if_fail (GDK_IS_MONITOR (monitor), NULL);
-
-  return monitor->display;
+//   return GDK_IS_MONITOR (monitor) ? monitor->display : NULL;
+  return monitor ? monitor->display : NULL;
 }
 
 /**
@@ -280,10 +279,11 @@ void
 gdk_monitor_get_geometry (GdkMonitor   *monitor,
                           GdkRectangle *geometry)
 {
-  g_return_if_fail (GDK_IS_MONITOR (monitor));
+//   g_return_if_fail (GDK_IS_MONITOR (monitor));
   g_return_if_fail (geometry != NULL);
 
-  *geometry = monitor->geometry;
+  if (monitor)
+    *geometry = monitor->geometry;
 }
 
 /**
@@ -311,7 +311,8 @@ void
 gdk_monitor_get_workarea (GdkMonitor   *monitor,
                           GdkRectangle *workarea)
 {
-  g_return_if_fail (GDK_IS_MONITOR (monitor));
+//   g_return_if_fail (GDK_IS_MONITOR (monitor));
+  g_return_if_fail (monitor != NULL);
   g_return_if_fail (workarea != NULL);
 
   if (GDK_MONITOR_GET_CLASS (monitor)->get_workarea)
@@ -333,7 +334,8 @@ gdk_monitor_get_workarea (GdkMonitor   *monitor,
 int
 gdk_monitor_get_width_mm (GdkMonitor *monitor)
 {
-  g_return_val_if_fail (GDK_IS_MONITOR (monitor), 0);
+//   g_return_val_if_fail (GDK_IS_MONITOR (monitor), 0);
+  g_return_val_if_fail (monitor != NULL, 0);
 
   return monitor->width_mm;
 }
@@ -350,7 +352,8 @@ gdk_monitor_get_width_mm (GdkMonitor *monitor)
 int
 gdk_monitor_get_height_mm (GdkMonitor *monitor)
 {
-  g_return_val_if_fail (GDK_IS_MONITOR (monitor), 0);
+//   g_return_val_if_fail (GDK_IS_MONITOR (monitor), 0);
+  g_return_val_if_fail (monitor != NULL, 0);
 
   return monitor->height_mm;
 }
@@ -366,7 +369,8 @@ gdk_monitor_get_height_mm (GdkMonitor *monitor)
 const char *
 gdk_monitor_get_connector (GdkMonitor *monitor)
 {
-  g_return_val_if_fail (GDK_IS_MONITOR (monitor), NULL);
+  g_return_val_if_fail (monitor != NULL, NULL);
+//   g_return_val_if_fail (GDK_IS_MONITOR (monitor), NULL);
 
   return monitor->connector;
 }
@@ -387,7 +391,8 @@ gdk_monitor_get_connector (GdkMonitor *monitor)
 const char *
 gdk_monitor_get_manufacturer (GdkMonitor *monitor)
 {
-  g_return_val_if_fail (GDK_IS_MONITOR (monitor), NULL);
+  g_return_val_if_fail (monitor != NULL, NULL);
+//   g_return_val_if_fail (GDK_IS_MONITOR (monitor), NULL);
 
   return monitor->manufacturer;
 }
@@ -403,7 +408,8 @@ gdk_monitor_get_manufacturer (GdkMonitor *monitor)
 const char *
 gdk_monitor_get_model (GdkMonitor *monitor)
 {
-  g_return_val_if_fail (GDK_IS_MONITOR (monitor), NULL);
+  g_return_val_if_fail (monitor != NULL, NULL);
+//   g_return_val_if_fail (GDK_IS_MONITOR (monitor), NULL);
 
   return monitor->model;
 }
@@ -426,9 +432,9 @@ gdk_monitor_get_model (GdkMonitor *monitor)
 int
 gdk_monitor_get_scale_factor (GdkMonitor *monitor)
 {
-  g_return_val_if_fail (GDK_IS_MONITOR (monitor), 1);
+//   g_return_val_if_fail (GDK_IS_MONITOR (monitor), 1);
 
-  return monitor->scale_factor;
+  return monitor ? monitor->scale_factor : 1;
 }
 
 /**
@@ -446,9 +452,9 @@ gdk_monitor_get_scale_factor (GdkMonitor *monitor)
 int
 gdk_monitor_get_refresh_rate (GdkMonitor *monitor)
 {
-  g_return_val_if_fail (GDK_IS_MONITOR (monitor), 0);
+//   g_return_val_if_fail (GDK_IS_MONITOR (monitor), 0);
 
-  return monitor->refresh_rate;
+  return monitor ? monitor->refresh_rate : 60000;
 }
 
 /**
@@ -464,7 +470,8 @@ gdk_monitor_get_refresh_rate (GdkMonitor *monitor)
 GdkSubpixelLayout
 gdk_monitor_get_subpixel_layout (GdkMonitor *monitor)
 {
-  g_return_val_if_fail (GDK_IS_MONITOR (monitor), GDK_SUBPIXEL_LAYOUT_UNKNOWN);
+  g_return_val_if_fail (monitor!=NULL, GDK_SUBPIXEL_LAYOUT_UNKNOWN);
+//   g_return_val_if_fail (GDK_IS_MONITOR (monitor), GDK_SUBPIXEL_LAYOUT_UNKNOWN);
 
   return monitor->subpixel_layout;
 }
@@ -482,7 +489,8 @@ gdk_monitor_get_subpixel_layout (GdkMonitor *monitor)
 gboolean
 gdk_monitor_is_primary (GdkMonitor *monitor)
 {
-  g_return_val_if_fail (GDK_IS_MONITOR (monitor), FALSE);
+  g_return_val_if_fail (monitor!=NULL, FALSE);
+//   g_return_val_if_fail (GDK_IS_MONITOR (monitor), FALSE);
 
   return monitor == gdk_display_get_primary_monitor (monitor->display);
 }
