diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 6011293..934d77a 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -1558,16 +1558,15 @@ gtk_entry_draw_frame (GtkWidget    *widget,
                       GdkRectangle *area)
 {
   GtkEntryPrivate *priv = GTK_ENTRY_GET_PRIVATE (widget);
-  gint x, y, width, height;
+  gint x, y = 0, width, height;
   gint xborder, yborder;
   
-  get_text_area_size (GTK_ENTRY (widget), &x, &y, &width, &height);
+  gdk_drawable_get_size (widget->window, NULL, &height);
+  get_text_area_size (GTK_ENTRY (widget), &x, NULL, &width, NULL);
   _gtk_entry_get_borders (GTK_ENTRY (widget), &xborder, &yborder);
 
   x -= xborder;
-  y -= yborder;
   width += xborder * 2;
-  height += yborder * 2;
 
   if (GTK_WIDGET_HAS_FOCUS (widget) && !priv->interior_focus)
     {
