diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 1dedce8b966ac6bdfceaaf4e6ddfe9a3c828a55b..ab514f980bcf535eba5d8f6624687f6931816c80 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,13 @@
+2002-01-29  Tom Tromey  <tromey@redhat.com>
+
+	* java/awt/GridLayout.java (layoutContainer): Use number of rows
+	to compute height of each cell, and number of columns to compute
+	width of each cell.
+	* java/awt/Window.java (getOwnedWindows): Don't return null.
+	* java/awt/FlowLayout.java (layoutContainer): Set width and height
+	of component.  Increment x using horizontal gap, not vertical
+	gap.
+
 2002-01-28  Tom Tromey  <tromey@redhat.com>
 
 	* verify.cc (class _Jv_BytecodeVerifier) [op_invokeinterface]:
diff --git a/libjava/java/awt/FlowLayout.java b/libjava/java/awt/FlowLayout.java
index a432a51a5c083cb7eb819c500c87cfd2ceabf522..e328d63796e4409b38aeb26fc2fc2d940cfb346b 100644
--- a/libjava/java/awt/FlowLayout.java
+++ b/libjava/java/awt/FlowLayout.java
@@ -212,8 +212,8 @@ public class FlowLayout implements LayoutManager, Serializable
 	    if (comps[k].visible)
 	      {
 		Dimension c = comps[k].getPreferredSize ();
-		comps[k].setLocation (x, y);
-		x += c.width + vgap;
+		comps[k].setBounds (x, y, c.width, new_h);
+		x += c.width + hgap;
 	      }
 	  }
 
diff --git a/libjava/java/awt/GridLayout.java b/libjava/java/awt/GridLayout.java
index e6cf1ec19bfbe089348f7be713055c609e20105d..347186536cb9b2631d1b03a5897affd371f96896 100644
--- a/libjava/java/awt/GridLayout.java
+++ b/libjava/java/awt/GridLayout.java
@@ -172,9 +172,9 @@ public class GridLayout implements LayoutManager, Serializable
 
     // Compute width and height of each cell in the grid.
     int tw = d.width - ins.left - ins.right;
-    tw = (tw - (real_rows - 1) * hgap) / real_rows;
+    tw = (tw - (real_cols - 1) * hgap) / real_cols;
     int th = d.height - ins.top - ins.bottom;
-    th = (th - (real_cols - 1) * vgap) / real_cols;
+    th = (th - (real_rows - 1) * vgap) / real_rows;
 
     // If the cells are too small, still try to do something.
     if (tw < 0)
diff --git a/libjava/java/awt/Window.java b/libjava/java/awt/Window.java
index b95dc8e961b1c7fecad23fa5d30e565e972c7e6d..6af7c3450088286d12bbda4626201a2033248253 100644
--- a/libjava/java/awt/Window.java
+++ b/libjava/java/awt/Window.java
@@ -303,7 +303,7 @@ public class Window extends Container
   {
     // FIXME: return array containing all the windows this window currently 
     // owns.
-    return null;
+    return new Window[0];
   }
 
   /**