Index: trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java	(revision 17316)
+++ trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java	(revision 17318)
@@ -298,5 +298,5 @@
         if (!keepSourceComment) {
             tags.put("source", getLastChangesetSourceFromHistory());
-            tags.put("comment", getLastChangesetCommentFromHistory());
+            tags.put("comment", getCommentWithDataSetHashTag(getLastChangesetCommentFromHistory(), dataSet));
         }
 
@@ -330,5 +330,5 @@
         if (keepSourceComment) {
             tags.put("source", changesetSourceModel.getComment());
-            tags.put("comment", changesetCommentModel.getComment());
+            tags.put("comment", getCommentWithDataSetHashTag(changesetCommentModel.getComment(), dataSet));
         }
 
@@ -336,4 +336,26 @@
         pnlTagSettings.tableChanged(null);
         pnlBasicUploadSettings.discardAllUndoableEdits();
+    }
+
+    /**
+     * Returns the given comment with appended hashtags from dataset changeset tags, if not already present.
+     * @param comment changeset comment
+     * @param dataSet optional dataset, which can contain hashtags in its changeset tags
+     * @return comment with dataset changesets tags, if any, not duplicated
+     */
+    private static String getCommentWithDataSetHashTag(String comment, DataSet dataSet) {
+        String result = comment;
+        if (dataSet != null) {
+            String hashtags = dataSet.getChangeSetTags().get("hashtags");
+            if (hashtags != null) {
+                for (String hashtag : hashtags.split(";")) {
+                    String sanitizedHashtag = hashtag.startsWith("#") ? hashtag : "#" + hashtag;
+                    if (!result.contains(sanitizedHashtag)) {
+                        result = result + " " + sanitizedHashtag;
+                    }
+                }
+            }
+        }
+        return result;
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/tagging/TagModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/TagModel.java	(revision 17316)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/TagModel.java	(revision 17318)
@@ -144,3 +144,8 @@
         return values.size();
     }
+
+    @Override
+    public String toString() {
+        return name + "=" + values;
+    }
 }
