Index: applications/editors/josm/plugins/terracer/src/terracer/TerracerAction.java
===================================================================
--- applications/editors/josm/plugins/terracer/src/terracer/TerracerAction.java	(revision 29049)
+++ applications/editors/josm/plugins/terracer/src/terracer/TerracerAction.java	(revision 29050)
@@ -399,5 +399,5 @@
                 }
 
-                addressBuilding(terr, street, streetName, number, additionalKeys);
+                addressBuilding(terr, street, streetName, number, additionalKeys, associatedStreet);
 
                 ways.add(terr);
@@ -429,5 +429,5 @@
                 }
             }
-            addressBuilding(outline, street, streetName, number, null);
+            addressBuilding(outline, street, streetName, number, null, associatedStreet);
             ways.add(outline);
         }
@@ -487,7 +487,8 @@
      * @param number The house number
      * @param additionalKeys More keys to be copied onto the new outline
+     * @param associatedStreet The associated street. Used to determine if addr:street should be set or not.
      */
     private void addressBuilding(Way outline, Way street, String streetName,
-            String number, Set<Entry<String, String>> additionalKeys) {
+            String number, Set<Entry<String, String>> additionalKeys, Relation associatedStreet) {
         if (number != null) {
             // only, if the user has specified house numbers
@@ -507,8 +508,11 @@
             this.commands.add(new ChangePropertyCommand(outline, "building", "yes"));
         }
-        if (street != null) {
-            this.commands.add(new ChangePropertyCommand(outline, "addr:street", street.get("name")));
-        } else if (streetName != null && !streetName.trim().isEmpty()) {
-            this.commands.add(new ChangePropertyCommand(outline, "addr:street", streetName.trim()));
+        // Only put addr:street if no relation exists or if it has no name
+        if (associatedStreet == null || !associatedStreet.hasKey("name")) {
+            if (street != null) {
+                this.commands.add(new ChangePropertyCommand(outline, "addr:street", street.get("name")));
+            } else if (streetName != null && !streetName.trim().isEmpty()) {
+                this.commands.add(new ChangePropertyCommand(outline, "addr:street", streetName.trim()));
+            }
         }
     }
