Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java	(revision 6707)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java	(revision 6708)
@@ -5,4 +5,6 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.awt.Component;
+import java.awt.Dimension;
 import java.awt.event.ActionEvent;
 import java.util.ArrayList;
@@ -17,4 +19,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.Layer.LayerAction;
@@ -30,4 +33,9 @@
     public final static class InfoAction extends AbstractAction {
         private final Layer layer;
+        
+        /**
+         * Constructs a new {@code InfoAction} for the given layer.
+         * @param layer The layer
+         */
         public InfoAction(Layer layer) {
             super(tr("Info"), ImageProvider.get("info"));
@@ -35,12 +43,25 @@
             this.layer = layer;
         }
+        
         @Override
         public void actionPerformed(ActionEvent e) {
-            JOptionPane.showMessageDialog(
-                    Main.parent,
-                    layer.getInfoComponent(),
-                    tr("Information about layer"),
-                    JOptionPane.INFORMATION_MESSAGE
-            );
+            Object object = layer.getInfoComponent();
+            if (object instanceof Component) {
+                ExtendedDialog ed = new ExtendedDialog(
+                        Main.parent, tr("Information about layer"),
+                        new String[] {tr("OK")});
+                ed.setButtonIcons(new String[] {"ok"});
+                ed.setIcon(JOptionPane.INFORMATION_MESSAGE);
+                ed.setContent((Component) object);
+                ed.setResizable(layer.isInfoResizable());
+                ed.setMinimumSize(new Dimension(270, 170));
+                ed.showDialog();
+            } else {
+                JOptionPane.showMessageDialog(
+                        Main.parent, object,
+                        tr("Information about layer"),
+                        JOptionPane.INFORMATION_MESSAGE
+                        );
+            }
         }
     }
Index: /trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 6707)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 6708)
@@ -221,5 +221,5 @@
 
         final JScrollPane sp = new JScrollPane(new HtmlPanel(info.toString()));
-        sp.setPreferredSize(new Dimension(sp.getPreferredSize().width, 350));
+        sp.setPreferredSize(new Dimension(sp.getPreferredSize().width+20, 370));
         SwingUtilities.invokeLater(new Runnable() {
             @Override
@@ -229,4 +229,9 @@
         });
         return sp;
+    }
+    
+    @Override
+    public boolean isInfoResizable() {
+        return true;
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/layer/Layer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/Layer.java	(revision 6707)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/Layer.java	(revision 6708)
@@ -184,4 +184,13 @@
 
     /**
+     * Determines if info dialog can be resized (false by default).
+     * @return {@code true} if the info dialog can be resized, {@code false} otherwise
+     * @since 6708
+     */
+    public boolean isInfoResizable() {
+        return false;
+    }
+
+    /**
      * Returns list of actions. Action can implement LayerAction interface when it needs to be represented by other
      * menu component than JMenuItem or when it supports multiple layers. Actions that support multiple layers should also
