Index: /trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java	(revision 12718)
+++ /trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java	(revision 12719)
@@ -10,4 +10,5 @@
 import java.awt.event.FocusAdapter;
 import java.awt.event.FocusEvent;
+import java.awt.event.ItemEvent;
 import java.awt.event.KeyAdapter;
 import java.awt.event.KeyEvent;
@@ -20,4 +21,5 @@
 import javax.swing.Action;
 import javax.swing.BorderFactory;
+import javax.swing.JCheckBox;
 import javax.swing.JEditorPane;
 import javax.swing.JPanel;
@@ -62,7 +64,10 @@
     /** the panel with a summary of the upload parameters */
     private final UploadParameterSummaryPanel pnlUploadParameterSummary = new UploadParameterSummaryPanel();
+    /** the checkbox to request feedback from other users */
+    private final JCheckBox cbRequestReview = new JCheckBox(tr("I would like someone to review my edits."));
     /** the changeset comment model */
     private final transient ChangesetCommentModel changesetCommentModel;
     private final transient ChangesetCommentModel changesetSourceModel;
+    private final transient ChangesetReviewModel changesetReviewModel;
 
     protected JPanel buildUploadCommentPanel() {
@@ -118,4 +123,6 @@
         add(buildUploadCommentPanel(), BorderLayout.NORTH);
         add(pnlUploadParameterSummary, BorderLayout.CENTER);
+        add(cbRequestReview, BorderLayout.SOUTH);
+        cbRequestReview.addItemListener(e -> changesetReviewModel.setReviewRequested(e.getStateChange() == ItemEvent.SELECTED));
     }
 
@@ -125,13 +132,19 @@
      * @param changesetCommentModel the model for the changeset comment. Must not be null
      * @param changesetSourceModel the model for the changeset source. Must not be null.
+     * @param changesetReviewModel the model for the changeset review. Must not be null.
      * @throws IllegalArgumentException if {@code changesetCommentModel} is null
-     */
-    public BasicUploadSettingsPanel(ChangesetCommentModel changesetCommentModel, ChangesetCommentModel changesetSourceModel) {
+     * @since 12719 (signature)
+     */
+    public BasicUploadSettingsPanel(ChangesetCommentModel changesetCommentModel, ChangesetCommentModel changesetSourceModel,
+            ChangesetReviewModel changesetReviewModel) {
         CheckParameterUtil.ensureParameterNotNull(changesetCommentModel, "changesetCommentModel");
         CheckParameterUtil.ensureParameterNotNull(changesetSourceModel, "changesetSourceModel");
+        CheckParameterUtil.ensureParameterNotNull(changesetReviewModel, "changesetReviewModel");
         this.changesetCommentModel = changesetCommentModel;
         this.changesetSourceModel = changesetSourceModel;
+        this.changesetReviewModel = changesetReviewModel;
         changesetCommentModel.addChangeListener(new ChangesetCommentChangeListener(hcbUploadComment));
         changesetSourceModel.addChangeListener(new ChangesetCommentChangeListener(hcbUploadSource));
+        changesetReviewModel.addChangeListener(new ChangesetReviewChangeListener());
         build();
     }
@@ -250,3 +263,18 @@
         }
     }
+
+    /**
+     * Observes the changeset review model and keeps the review checkbox
+     * in sync with the current changeset review request
+     */
+    class ChangesetReviewChangeListener implements ChangeListener {
+        @Override
+        public void stateChanged(ChangeEvent e) {
+            if (!(e.getSource() instanceof ChangesetReviewModel)) return;
+            boolean newState = ((ChangesetReviewModel) e.getSource()).isReviewRequested();
+            if (cbRequestReview.isSelected() != newState) {
+                cbRequestReview.setSelected(newState);
+            }
+        }
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/io/ChangesetReviewModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/ChangesetReviewModel.java	(revision 12719)
+++ /trunk/src/org/openstreetmap/josm/gui/io/ChangesetReviewModel.java	(revision 12719)
@@ -0,0 +1,35 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.io;
+
+import org.openstreetmap.josm.gui.util.ChangeNotifier;
+
+/**
+ * ChangesetReviewModel is an observable model for the changeset review requested
+ * in the {@link UploadDialog}.
+ * @since 12719
+ */
+public class ChangesetReviewModel extends ChangeNotifier {
+    private boolean review;
+
+    /**
+     * Sets the current changeset review request state and notifies observers if it has changed.
+     *
+     * @param review the new review request state
+     */
+    public void setReviewRequested(boolean review) {
+        boolean oldValue = this.review;
+        this.review = review;
+        if (oldValue != this.review) {
+            fireStateChanged();
+        }
+    }
+
+    /**
+     * Determines if a changeset review has been requested.
+     *
+     * @return {@code true} if a changeset review has been requested
+     */
+    public boolean isReviewRequested() {
+        return review;
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java	(revision 12718)
+++ /trunk/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java	(revision 12719)
@@ -29,4 +29,5 @@
     private final transient ChangesetCommentModel changesetCommentModel;
     private final transient ChangesetCommentModel changesetSourceModel;
+    private final transient ChangesetReviewModel changesetReviewModel;
 
     /**
@@ -35,13 +36,19 @@
      * @param changesetCommentModel the changeset comment model. Must not be null.
      * @param changesetSourceModel the changeset source model. Must not be null.
+     * @param changesetReviewModel the model for the changeset review. Must not be null.
      * @throws IllegalArgumentException if {@code changesetCommentModel} is null
+     * @since 12719 (signature)
      */
-    public TagSettingsPanel(ChangesetCommentModel changesetCommentModel, ChangesetCommentModel changesetSourceModel) {
+    public TagSettingsPanel(ChangesetCommentModel changesetCommentModel, ChangesetCommentModel changesetSourceModel,
+            ChangesetReviewModel changesetReviewModel) {
         CheckParameterUtil.ensureParameterNotNull(changesetCommentModel, "changesetCommentModel");
         CheckParameterUtil.ensureParameterNotNull(changesetSourceModel, "changesetSourceModel");
+        CheckParameterUtil.ensureParameterNotNull(changesetReviewModel, "changesetReviewModel");
         this.changesetCommentModel = changesetCommentModel;
         this.changesetSourceModel = changesetSourceModel;
-        this.changesetCommentModel.addChangeListener(new ChangesetCommentChangeListener("comment"));
-        this.changesetSourceModel.addChangeListener(new ChangesetCommentChangeListener("source"));
+        this.changesetReviewModel = changesetReviewModel;
+        changesetCommentModel.addChangeListener(new ChangesetCommentChangeListener("comment"));
+        changesetSourceModel.addChangeListener(new ChangesetCommentChangeListener("source"));
+        changesetReviewModel.addChangeListener(new ChangesetReviewChangeListener());
         build();
         pnlTagEditor.getModel().addTableModelListener(this);
@@ -109,4 +116,5 @@
         changesetCommentModel.setComment(getTagEditorValue("comment"));
         changesetSourceModel.setComment(getTagEditorValue("source"));
+        changesetReviewModel.setReviewRequested("yes".equals(getTagEditorValue("review_requested")));
     }
 
@@ -117,4 +125,5 @@
         setProperty("comment", changesetCommentModel.getComment());
         setProperty("source", changesetSourceModel.getComment());
+        setProperty("review_requested", changesetReviewModel.isReviewRequested() ? "yes" : null);
     }
 
@@ -142,3 +151,23 @@
         }
     }
+
+    /**
+     * Observes the changeset review model and keeps the tag editor in sync
+     * with the current changeset review request
+     */
+    class ChangesetReviewChangeListener implements ChangeListener {
+
+        private final String key = "review_requested";
+
+        @Override
+        public void stateChanged(ChangeEvent e) {
+            if (e.getSource() instanceof ChangesetReviewModel) {
+                boolean newState = ((ChangesetReviewModel) e.getSource()).isReviewRequested();
+                boolean oldState = "yes".equals(Optional.ofNullable(getTagEditorValue(key)).orElse(""));
+                if (oldState != newState) {
+                    setProperty(key, newState ? "yes" : null);
+                }
+            }
+        }
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java	(revision 12718)
+++ /trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java	(revision 12719)
@@ -101,4 +101,5 @@
     private final transient ChangesetCommentModel changesetCommentModel = new ChangesetCommentModel();
     private final transient ChangesetCommentModel changesetSourceModel = new ChangesetCommentModel();
+    private final transient ChangesetReviewModel changesetReviewModel = new ChangesetReviewModel();
 
     private transient DataSet dataSet;
@@ -145,10 +146,10 @@
         tpConfigPanels = new CompactTabbedPane();
 
-        pnlBasicUploadSettings = new BasicUploadSettingsPanel(changesetCommentModel, changesetSourceModel);
+        pnlBasicUploadSettings = new BasicUploadSettingsPanel(changesetCommentModel, changesetSourceModel, changesetReviewModel);
         tpConfigPanels.add(pnlBasicUploadSettings);
         tpConfigPanels.setTitleAt(0, tr("Settings"));
         tpConfigPanels.setToolTipTextAt(0, tr("Decide how to upload the data and which changeset to use"));
 
-        pnlTagSettings = new TagSettingsPanel(changesetCommentModel, changesetSourceModel);
+        pnlTagSettings = new TagSettingsPanel(changesetCommentModel, changesetSourceModel, changesetReviewModel);
         tpConfigPanels.add(pnlTagSettings);
         tpConfigPanels.setTitleAt(1, tr("Tags of new changeset"));
Index: /trunk/test/unit/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanelTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanelTest.java	(revision 12718)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanelTest.java	(revision 12719)
@@ -27,5 +27,5 @@
     @Test
     public void testBasicUploadSettingsPanel() {
-        assertNotNull(new BasicUploadSettingsPanel(new ChangesetCommentModel(), new ChangesetCommentModel()));
+        assertNotNull(new BasicUploadSettingsPanel(new ChangesetCommentModel(), new ChangesetCommentModel(), new ChangesetReviewModel()));
     }
 }
Index: /trunk/test/unit/org/openstreetmap/josm/gui/io/TagSettingsPanelTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/io/TagSettingsPanelTest.java	(revision 12718)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/io/TagSettingsPanelTest.java	(revision 12719)
@@ -27,5 +27,5 @@
     @Test
     public void testTagSettingsPanel() {
-        assertNotNull(new TagSettingsPanel(new ChangesetCommentModel(), new ChangesetCommentModel()));
+        assertNotNull(new TagSettingsPanel(new ChangesetCommentModel(), new ChangesetCommentModel(), new ChangesetReviewModel()));
     }
 }
