diff --git a/smack-core/src/main/java/org/jivesoftware/smack/packet/XMPPError.java b/smack-core/src/main/java/org/jivesoftware/smack/packet/XMPPError.java
index 3913fe374..fc96cbbfa 100644
--- a/smack-core/src/main/java/org/jivesoftware/smack/packet/XMPPError.java
+++ b/smack-core/src/main/java/org/jivesoftware/smack/packet/XMPPError.java
@@ -39,14 +39,14 @@ import org.jivesoftware.smack.util.XmlStringBuilder;
*
conflict | CANCEL | 8.3.3.2 |
* feature-not-implemented | CANCEL | 8.3.3.3 |
* forbidden | AUTH | 8.3.3.4 |
- * gone | MODIFY | 8.3.3.5 |
+ * gone | CANCEL | 8.3.3.5 |
* internal-server-error | WAIT | 8.3.3.6 |
* item-not-found | CANCEL | 8.3.3.7 |
* jid-malformed | MODIFY | 8.3.3.8 |
- * not-acceptable | MODIFY | 8.3.3.9 |
+ * not-acceptable | MODIFY | 8.3.3.9 |
* not-allowed | CANCEL | 8.3.3.10 |
* not-authorized | AUTH | 8.3.3.11 |
- * policy-violation | AUTH | 8.3.3.12 |
+ * policy-violation | MODIFY | 8.3.3.12 |
* recipient-unavailable | WAIT | 8.3.3.13 |
* redirect | MODIFY | 8.3.3.14 |
* registration-required | AUTH | 8.3.3.15 |
@@ -55,7 +55,7 @@ import org.jivesoftware.smack.util.XmlStringBuilder;
* resource-constraint | WAIT | 8.3.3.18 |
* service-unavailable | CANCEL | 8.3.3.19 |
* subscription-required | AUTH | 8.3.3.20 |
- * undefined-condition | WAIT | 8.3.3.21 |
+ * undefined-condition | MODIFY | 8.3.3.21 |
* unexpected-request | WAIT | 8.3.3.22 |
*
*
@@ -91,9 +91,10 @@ public class XMPPError extends AbstractError {
CONDITION_TO_TYPE.put(Condition.remote_server_not_found, Type.CANCEL);
CONDITION_TO_TYPE.put(Condition.remote_server_timeout, Type.WAIT);
CONDITION_TO_TYPE.put(Condition.resource_constraint, Type.WAIT);
- CONDITION_TO_TYPE.put(Condition.service_unavailable, Type.WAIT);
- CONDITION_TO_TYPE.put(Condition.subscription_required, Type.WAIT);
- CONDITION_TO_TYPE.put(Condition.unexpected_request, Type.MODIFY);
+ CONDITION_TO_TYPE.put(Condition.service_unavailable, Type.CANCEL);
+ CONDITION_TO_TYPE.put(Condition.subscription_required, Type.AUTH);
+ CONDITION_TO_TYPE.put(Condition.undefined_condition, Type.MODIFY);
+ CONDITION_TO_TYPE.put(Condition.unexpected_request, Type.WAIT);
}
private final Condition condition;