Index: trunk/src/org/openstreetmap/josm/gui/ExceptionDialogUtil.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/ExceptionDialogUtil.java	(revision 2239)
+++ trunk/src/org/openstreetmap/josm/gui/ExceptionDialogUtil.java	(revision 2240)
@@ -245,5 +245,5 @@
     public static void explainGoneForUnknownPrimitive(OsmApiException e) {
         JOptionPane.showMessageDialog(Main.parent, ExceptionUtil.explainGoneForUnknownPrimitive(e),
-                tr("Primitive already deleted"), JOptionPane.ERROR_MESSAGE);
+                tr("Object deleted"), JOptionPane.ERROR_MESSAGE);
 
     }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 2239)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 2240)
@@ -145,5 +145,5 @@
         ArrayList<Relation> relations = new ArrayList<Relation>(ds.relations.size());
         for (Relation r: ds.relations ){
-            if (r.isDeleted() || r.incomplete) {
+            if (!r.isUsable() || !r.isVisible()) {
                 continue;
             }
@@ -492,5 +492,3 @@
         }
     }
-
-
 }
Index: trunk/src/org/openstreetmap/josm/io/OsmApiException.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmApiException.java	(revision 2239)
+++ trunk/src/org/openstreetmap/josm/io/OsmApiException.java	(revision 2240)
@@ -60,10 +60,10 @@
         sb.append("ResponseCode=")
         .append(responseCode);
-        if (errorHeader != null) {
+        if (errorHeader != null && !errorBody.trim().equals("")) {
             sb.append(", Error Header=<")
             .append(tr(errorHeader))
             .append(">");
         }
-        if (errorBody != null) {
+        if (errorBody != null && !errorBody.trim().equals("")) {
             errorBody = errorBody.trim();
             if(!errorBody.equals(errorHeader)) {
Index: trunk/src/org/openstreetmap/josm/tools/ExceptionUtil.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/ExceptionUtil.java	(revision 2239)
+++ trunk/src/org/openstreetmap/josm/tools/ExceptionUtil.java	(revision 2240)
@@ -277,6 +277,10 @@
      */
     public static String explainGoneForUnknownPrimitive(OsmApiException e) {
-        String msg = tr("<html>Uploading <strong>failed</strong> because a primitive you tried to<br>"
-                + "delete on the server is already deleted.<br>" + "<br>" + "The error message is:<br>" + "{0}"
+        String msg = tr(
+                "<html>The server reports that an object is deleted.<br>"
+                + "<strong>Uploading failed</strong> if you tried to update or delete this object.<br> "
+                + "<strong>Downloading failed</strong> if you tried to download this object.<br>"
+                + "<br>"
+                + "The error message is:<br>" + "{0}"
                 + "</html>", e.getMessage().replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;"));
         return msg;
@@ -290,7 +294,12 @@
      */
     public static String explainException(Exception e) {
-        if (e instanceof OsmTransferException)
-            return explainOsmTransferException((OsmTransferException) e);
-        return explainGeneric(e);
+        String msg = "";
+        if (e instanceof OsmTransferException) {
+            msg = explainOsmTransferException((OsmTransferException) e);
+        } else {
+            msg = explainGeneric(e);
+        }
+        e.printStackTrace();
+        return msg;
     }
 }
