diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c
index a637b07..a7f6058 100644
--- a/gdk/quartz/gdkwindow-quartz.c
+++ b/gdk/quartz/gdkwindow-quartz.c
@@ -1687,7 +1694,21 @@ gdk_window_quartz_restack_toplevel (GdkWindow *window,
 				    GdkWindow *sibling,
 				    gboolean   above)
 {
-  /* FIXME: Implement this */
+  GdkWindowImplQuartz *impl;
+  int sibling_num;
+
+  g_return_if_fail (GDK_IS_WINDOW(window));
+  g_return_if_fail (GDK_IS_WINDOW(sibling);
+
+  impl = GDK_WINDOW_IMPL_QUARTZ (((GdkWindowObject *)sibling)->impl);
+  sibling_num = [impl->toplevel windowNumber];
+  impl = GDK_WINDOW_IMPL_QUARTZ (((GdkWindowObject *)window)->impl);
+
+  if (above)
+    [impl->toplevel orderWindow:NSWindowAbove relativeTo:sibling_num];
+  else 
+    [impl->toplevel orderWindow:NSWindowBelow relativeTo:sibling_num];
+
 }
 
 static void
