diff --git a/user/src/com/google/gwt/user/client/ui/DeckPanel.java b/user/src/com/google/gwt/user/client/ui/DeckPanel.java
index 0126171..7975f2f 100644
--- a/user/src/com/google/gwt/user/client/ui/DeckPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/DeckPanel.java
@@ -341,7 +341,15 @@
   private void finishWidgetInitialization(Element container, Widget w) {
     UIObject.setVisible(container, false);
     DOM.setStyleAttribute(container, "height", "100%");
-    w.setSize("100%", "100%");
+    
+    // Set 100% by default.
+    Element element = w.getElement();
+    if (DOM.getStyleAttribute(element, "width").equals("")) {
+      w.setWidth("100%");
+    }
+    if (DOM.getStyleAttribute(element, "height").equals("")) {
+      w.setHeight("100%");
+    }
 
     // Issue 2510: Hiding the widget isn't necessary because we hide its
     // wrapper, but it's in here for legacy support.
diff --git a/user/test/com/google/gwt/user/client/ui/DeckPanelTest.java b/user/test/com/google/gwt/user/client/ui/DeckPanelTest.java
index 562957e..b37d6bb 100644
--- a/user/test/com/google/gwt/user/client/ui/DeckPanelTest.java
+++ b/user/test/com/google/gwt/user/client/ui/DeckPanelTest.java
@@ -16,6 +16,8 @@
 
 package com.google.gwt.user.client.ui;
 
+import com.google.gwt.user.client.DOM;
+
 /**
  * Test for {@link DeckPanel}.
  */
@@ -99,6 +101,46 @@
     // Verify content.onLoad was actually called
     assertEquals("attached", content.getText());
   }
+  
+  /**
+   * Test that style width/height is set to 100% by default.
+   */
+  public void testWidgetDefaultSizeOnAdd() {
+    DeckPanel deck = new DeckPanel();
+    RootPanel.get().add(deck);
+    
+    // Prepare widget, no width/height initially
+    Label content = new Label("content");
+    assertEquals("", content.getElement().getStyle().getWidth());
+    assertEquals("", content.getElement().getStyle().getHeight());
+    
+    // Add a widget to the DeckPanel
+    deck.add(content);
+    
+    // Verify width/height
+    assertEquals("100%", content.getElement().getStyle().getWidth());
+    assertEquals("100%", content.getElement().getStyle().getHeight());
+  }
+  
+  /**
+   * Test that existing width/height is kept as is during add.
+   */
+  public void testWidgetKeepSizeOnAdd() {
+    DeckPanel deck = new DeckPanel();
+    RootPanel.get().add(deck);
+    
+    // Prepare widget, with width/height
+    Label content = new Label("content");
+    DOM.setStyleAttribute(content.getElement(), "width", "5cm");
+    DOM.setStyleAttribute(content.getElement(), "height", "30mm");
+    
+    // Add a widget to the DeckPanel
+    deck.add(content);
+    
+    // Verify width/height
+    assertEquals("5cm", DOM.getStyleAttribute(content.getElement(), "width"));
+    assertEquals("30mm", DOM.getStyleAttribute(content.getElement(), "height"));
+  }
 
   @Override
   protected DeckPanel createPanel() {
