Index: /trunk/src/org/openstreetmap/josm/gui/widgets/MultiSplitLayout.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/widgets/MultiSplitLayout.java	(revision 11947)
+++ /trunk/src/org/openstreetmap/josm/gui/widgets/MultiSplitLayout.java	(revision 11948)
@@ -655,28 +655,27 @@
                 while (splitChildren.hasNext()) {
                     Node splitChild = splitChildren.next();
-                    Divider dividerChild =
-                        splitChildren.hasNext() ? (Divider) splitChildren.next() : null;
-
-                        double childHeight;
-                        if (getFloatingDividers()) {
-                            childHeight = preferredNodeSize(splitChild).getHeight();
+                    Node nodeChild = splitChildren.hasNext() ? splitChildren.next() : null;
+                    Divider dividerChild = nodeChild instanceof Divider ? (Divider) nodeChild : null;
+                    double childHeight;
+                    if (getFloatingDividers()) {
+                        childHeight = preferredNodeSize(splitChild).getHeight();
+                    } else {
+                        if (dividerChild != null) {
+                            childHeight = dividerChild.getBounds().getY() - y;
                         } else {
-                            if (dividerChild != null) {
-                                childHeight = dividerChild.getBounds().getY() - y;
-                            } else {
-                                childHeight = split.getBounds().getMaxY() - y;
-                            }
+                            childHeight = split.getBounds().getMaxY() - y;
                         }
-                        childBounds = boundsWithYandHeight(bounds, y, childHeight);
-                        layout1(splitChild, childBounds);
-
-                        if (getFloatingDividers() && (dividerChild != null)) {
-                            double dividerY = childBounds.getMaxY();
-                            Rectangle dividerBounds = boundsWithYandHeight(bounds, dividerY, dividerSize);
-                            dividerChild.setBounds(dividerBounds);
-                        }
-                        if (dividerChild != null) {
-                            y = dividerChild.getBounds().getMaxY();
-                        }
+                    }
+                    childBounds = boundsWithYandHeight(bounds, y, childHeight);
+                    layout1(splitChild, childBounds);
+
+                    if (getFloatingDividers() && (dividerChild != null)) {
+                        double dividerY = childBounds.getMaxY();
+                        Rectangle dividerBounds = boundsWithYandHeight(bounds, dividerY, dividerSize);
+                        dividerChild.setBounds(dividerBounds);
+                    }
+                    if (dividerChild != null) {
+                        y = dividerChild.getBounds().getMaxY();
+                    }
                 }
             }
