diff --git a/src/home/hd-task-navigator.c b/src/home/hd-task-navigator.c
index 3cc53c7..cf1ec47 100644
--- a/src/home/hd-task-navigator.c
+++ b/src/home/hd-task-navigator.c
@@ -36,9 +36,6 @@
  * }}}
  */
 
-/* Uncomment if you want single-column layout... */
-#define SINGLE_COLUMN
-
 /* Include files {{{ */
 #include <math.h>
 #include <errno.h>
@@ -107,13 +104,8 @@
  * button reaction area.  1-2 thumbnails are LARGE, 3-6 are MEDIUM
  * and the rest are SMALL.
  */
-#if defined(SINGLE_COLUMN)
-# define THUMB_LARGE_WIDTH         600
-# define THUMB_LARGE_HEIGHT        373
-#else
-# define THUMB_LARGE_WIDTH         344
-# define THUMB_LARGE_HEIGHT        214
-#endif
+#define THUMB_LARGE_WIDTH         600
+#define THUMB_LARGE_HEIGHT        373
 #define THUMB_MEDIUM_WIDTH        224
 #define THUMB_MEDIUM_HEIGHT       150
 #define THUMB_SMALL_WIDTH         152
@@ -1714,11 +1706,11 @@ hd_task_navigator_scroll_back (HdTaskNavigator * self)
 
 /* Updates our #HdScrollableGroup's idea about the @Grid's height. */
 static void
-set_navigator_height (guint hnavigator)
+set_navigator_width (guint wnavigator)
 {
   hd_scrollable_group_set_real_estate (Grid,
-                                       HD_SCROLLABLE_GROUP_VERTICAL,
-                                       hnavigator);
+                                       HD_SCROLLABLE_GROUP_HORIZONTAL,
+                                       wnavigator);
 }
 /* Navigator utilities }}} */
 
@@ -1756,17 +1748,10 @@ calc_layout (Layout * lout)
    * (not the last one, which may be different) and the maximum
    * number of fully visible rows at a time. */
 
-#if defined(SINGLE_COLUMN)
   /* Single-column extra-large layout */
   lout->thumbsize = &Thumbsizes.large;
   lout->cells_per_row = 1;
   nrows_per_page = 1;
-#else
-  /* Two-column "big" layout */
-  lout->thumbsize = &Thumbsizes.large;
-  lout->cells_per_row = NThumbnails > 1 ? 2 : 1;
-  nrows_per_page = NThumbnails <= 2 ? 1 : 2;
-#endif
 
 #if 0
   /* The original Maemo 5 layout method */
@@ -2044,8 +2029,8 @@ layout_notwin (Thumbnail * thumb, const GtkRequisition * oldthsize,
 /*
  * Lays out @Thumbnails on @Grid, and their inner portions.  Makes actors fly
  * if it's appropriate.  @newborn is either a new thumbnail or notification
- * to be displayed; it won't be animated.  Returns the position of the bottom
- * of the lowest thumbnail.  Also sets @Thumbsize.
+ * to be displayed; it won't be animated.  Returns the position of the right
+ * edge of the last thumbnail (i.e. the total width).  Also sets @Thumbsize.
  */
 static guint
 layout_thumbs (ClutterActor * newborn)
@@ -2067,12 +2052,15 @@ layout_thumbs (ClutterActor * newborn)
     - (TITLE_LEFT_MARGIN + TITLE_RIGHT_MARGIN + CLOSE_ICON_SIZE);
 
   /* Place and scale each thumbnail row by row. */
-  xthumb = ythumb = 0xB002E;
+  ythumb = lout.ypos;
+  xthumb = lout.xpos;
+
   for (li = Thumbnails, i = 0; li && (thumb = li->data); li = li->next, i++)
     {
       const Flyops *ops;
 
       /* If it's a new row re/set @ythumb and @xthumb. */
+#if 0
       g_assert (lout.cells_per_row > 0);
       if (!(i % lout.cells_per_row))
         {
@@ -2086,6 +2074,7 @@ layout_thumbs (ClutterActor * newborn)
           xthumb = i + lout.cells_per_row <= NThumbnails
             ? lout.xpos : lout.last_row_xpos;
         }
+#endif
 
       /* If @thwin's been there, animate as it's moving.  Otherwise if it's
        * a new one to enter the navigator, don't, it's hidden anyway. */
@@ -2132,7 +2121,10 @@ skip_the_circus:
       xthumb += lout.hspace;
     }
 
-  return ythumb + Thumbsize->height;
+  /* Use "lout.xpos" here as the padding value for the
+   * right margin - this works in single-column mode,
+   * because it's always a nice border value :) */
+  return xthumb + lout.xpos;
 }
 
 /* Lays out the @Thumbnails in the @Grid. */
@@ -2142,7 +2134,7 @@ layout (ClutterActor * newborn, gboolean newborn_is_notification)
   /* This layout machinery is based on invariants, which basically
    * means we don't pay much attention to what caused the layout
    * update, but we rely on the current state of matters. */
-  set_navigator_height (layout_thumbs (newborn));
+  set_navigator_width (layout_thumbs (newborn));
 
   if (newborn && animation_in_progress (Fly_effect_timeline))
     {
@@ -4111,6 +4103,12 @@ hd_task_navigator_init (HdTaskNavigator * self)
    * at the same time it is set.  TODO This can be considered a hack.
    */
   Grid = HD_SCROLLABLE_GROUP (hd_scrollable_group_new ());
+
+  /* Make sure our grid is as high as the screen. */
+  hd_scrollable_group_set_real_estate (Grid,
+                                       HD_SCROLLABLE_GROUP_VERTICAL,
+                                       SCREEN_HEIGHT);
+
   clutter_actor_set_name (CLUTTER_ACTOR (Grid), "Grid");
   clutter_actor_set_reactive (CLUTTER_ACTOR (Grid), TRUE);
   clutter_actor_set_visibility_detect(CLUTTER_ACTOR (Grid), FALSE);

