diff --git src/org/openstreetmap/josm/gui/io/UploadTextComponentValidator.java src/org/openstreetmap/josm/gui/io/UploadTextComponentValidator.java
index 5d22d2b66..f6f60b671 100644
--- src/org/openstreetmap/josm/gui/io/UploadTextComponentValidator.java
+++ src/org/openstreetmap/josm/gui/io/UploadTextComponentValidator.java
@@ -21,7 +21,8 @@ import org.openstreetmap.josm.tools.Utils;
  */
 abstract class UploadTextComponentValidator extends AbstractTextComponentValidator {
     private final JLabel feedback;
-    protected boolean uploadRejected;
+    protected boolean isUploadCommentRejected;
+    protected boolean isUploadSourceRejected;
 
     UploadTextComponentValidator(JTextComponent tc, JLabel feedback) {
         super(tc);
@@ -65,7 +66,7 @@ abstract class UploadTextComponentValidator extends AbstractTextComponentValidat
      * @since 17238
      */
     public final boolean isUploadRejected() {
-        return uploadRejected;
+        return isUploadCommentRejected || isUploadSourceRejected;
     }
 
     /**
@@ -84,7 +85,13 @@ abstract class UploadTextComponentValidator extends AbstractTextComponentValidat
                 return;
             }
             String uploadComment = getComponent().getText();
-            if (UploadDialog.UploadAction.isUploadCommentTooShort(uploadComment)) {
+            String rejection = UploadDialog.UploadAction.validateUploadTag(uploadComment, "upload.comment",
+                    Collections.emptyList(), Collections.emptyList(), Collections.emptyList());
+            isUploadCommentRejected = rejection != null;
+
+            if (isUploadCommentRejected) {
+                feedbackWarning(tr("Your upload comment is <i>rejected</i>.") + "<br />" + rejection);
+            } else if (UploadDialog.UploadAction.isUploadCommentTooShort(uploadComment)) {
                 feedbackWarning(tr("Your upload comment is <i>empty</i>, or <i>very short</i>.<br /><br />" +
                         "This is technically allowed, but please consider that many users who are<br />" +
                         "watching changes in their area depend on meaningful changeset comments<br />" +
@@ -92,15 +99,8 @@ abstract class UploadTextComponentValidator extends AbstractTextComponentValidat
                         "If you spend a minute now to explain your change, you will make life<br />" +
                         "easier for many other mappers.").replace("<br />", " "));
             } else {
-                String rejection = UploadDialog.UploadAction.validateUploadTag(uploadComment, "upload.comment",
-                        Collections.emptyList(), Collections.emptyList(), Collections.emptyList());
-                uploadRejected = rejection != null;
-                if (uploadRejected) {
-                    feedbackWarning(tr("Your upload comment is <i>rejected</i>.") + "<br />" + rejection);
-                } else {
-                    feedbackValid(tr("Thank you for providing a changeset comment! " +
-                            "This gives other mappers a better understanding of your intent."));
-                }
+                feedbackValid(tr("Thank you for providing a changeset comment! " +
+                        "This gives other mappers a better understanding of your intent."));
             }
         }
     }
@@ -121,21 +121,20 @@ abstract class UploadTextComponentValidator extends AbstractTextComponentValidat
                 return;
             }
             String uploadSource = getComponent().getText();
-            if (Utils.isStripEmpty(uploadSource)) {
+            final String rejection = UploadDialog.UploadAction.validateUploadTag(
+                    uploadSource, "upload.source", Collections.emptyList(), Collections.emptyList(), Collections.emptyList());
+            isUploadSourceRejected = rejection != null;
+
+            if (isUploadSourceRejected) {
+                feedbackWarning(tr("Your changeset source is <i>rejected</i>.") + "<br />" + rejection);
+            } else if (Utils.isStripEmpty(uploadSource)) {
                 feedbackWarning(tr("You did not specify a source for your changes.<br />" +
                         "It is technically allowed, but this information helps<br />" +
                         "other users to understand the origins of the data.<br /><br />" +
                         "If you spend a minute now to explain your change, you will make life<br />" +
                         "easier for many other mappers.").replace("<br />", " "));
             } else {
-                final String rejection = UploadDialog.UploadAction.validateUploadTag(
-                        uploadSource, "upload.source", Collections.emptyList(), Collections.emptyList(), Collections.emptyList());
-                uploadRejected = rejection != null;
-                if (uploadRejected) {
-                    feedbackWarning(tr("Your changeset source is <i>rejected</i>.") + "<br />" + rejection);
-                } else {
-                    feedbackValid(tr("Thank you for providing the data source!"));
-                }
+                feedbackValid(tr("Thank you for providing the data source!"));
             }
         }
     }
