Index: trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java	(revision 17352)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java	(revision 17353)
@@ -344,5 +344,5 @@
 
         getContentPane().add(pnlButtons, BorderLayout.SOUTH);
-        validate();
+        getContentPane().validate();
         adjustDividerLocation();
         pnlRelationMemberConflictResolver.prepareForEditing();
@@ -445,8 +445,15 @@
         int numTagDecisions = modelTagConflictResolver.getNumDecisions();
         int numRelationDecisions = modelRelConflictResolver.getNumDecisions();
-        if (numTagDecisions > 0 && numRelationDecisions > 0) {
-            double nTop = 1.0 + numTagDecisions;
-            double nBottom = 2.5 + numRelationDecisions;
-            spTagConflictTypes.setDividerLocation(nTop/(nTop+nBottom));
+
+
+        if (numTagDecisions > 0 && numRelationDecisions > 0 && getHeight() > 0) {
+            // see #12536: Take the space for buttons and checkbox into account.
+            double hPopup = getHeight();
+            double h1 = (pnlRelationMemberConflictResolver.getHeight() + pnlTagConflictResolver.getHeight());
+            double correction = h1 > 0 ? ((hPopup-h1)/hPopup) : 0;
+
+            double nTop = 3.5 + numTagDecisions;
+            double nBottom = 5.5 + numRelationDecisions;
+            spTagConflictTypes.setDividerLocation(nTop/(nTop+nBottom) - correction);
         }
     }
