diff --git a/res/values/strings.xml b/res/values/strings.xml
index 089a678b1..58af226b1 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -262,8 +262,8 @@
     <string name="pref_conference_name">Conference name</string>
     <string name="pref_conference_name_summary">Use room’s subject instead of JID to identify conferences</string>
     <string name="toast_message_otr_fingerprint">OTR fingerprint copied to clipboard!</string>
-    <string name="conference_banned">You were been banned from the conference room</string>
-    <string name="conference_members_only">The conference room is only for members</string>
-    <string name="conference_kicked">You were been kicked from the conference room</string>
+    <string name="conference_banned">You are banned from this conference</string>
+    <string name="conference_members_only">This conference is members only</string>
+    <string name="conference_kicked">You have been kicked from this conference</string>
 
 </resources>
diff --git a/src/eu/siacs/conversations/entities/MucOptions.java b/src/eu/siacs/conversations/entities/MucOptions.java
index a9d568486..12ea4e931 100644
--- a/src/eu/siacs/conversations/entities/MucOptions.java
+++ b/src/eu/siacs/conversations/entities/MucOptions.java
@@ -115,7 +115,6 @@ public class MucOptions {
 	private String subject = null;
 	private String joinnick;
 	private String password = null;
-	private boolean passwordChanged = false;
 
 	public MucOptions(Account account) {
 		this.account = account;
@@ -165,9 +164,6 @@ public class MucOptions {
 						}
 						aboutToRename = false;
 					}
-					if (conversation.getBookmark() != null) {
-						this.passwordChanged = false;
-					}
 				} else {
 					addUser(user);
 				}
@@ -186,22 +182,26 @@ public class MucOptions {
 					}
 				}
 			} else if (type.equals("unavailable") && name.equals(this.joinnick)) {
-				Element status = packet.findChild("x",
-						"http://jabber.org/protocol/muc#user").findChild(
-						"status");
-				String code = status.getAttribute("code");
-				if (code.equals(STATUS_CODE_KICKED)) {
-					this.isOnline = false;
-					this.error = KICKED_FROM_ROOM;
-				} else if (code.equals(STATUS_CODE_BANNED)) {
-					this.isOnline = false;
-					this.error = ERROR_BANNED;
+				Element x = packet.findChild("x",
+						"http://jabber.org/protocol/muc#user");
+				if (x != null) {
+					Element status = x.findChild("status");
+					if (status != null) {
+						String code = status.getAttribute("code");
+						if (STATUS_CODE_KICKED.equals(code)) {
+							this.isOnline = false;
+							this.error = KICKED_FROM_ROOM;
+						} else if (STATUS_CODE_BANNED.equals(code)) {
+							this.isOnline = false;
+							this.error = ERROR_BANNED;
+						}
+					}
 				}
 			} else if (type.equals("unavailable")) {
 				deleteUser(packet.getAttribute("from").split("/", 2)[1]);
 			} else if (type.equals("error")) {
 				Element error = packet.findChild("error");
-				if (error.hasChild("conflict")) {
+				if (error != null && error.hasChild("conflict")) {
 					if (aboutToRename) {
 						if (renameListener != null) {
 							renameListener.onRename(false);
@@ -211,14 +211,12 @@ public class MucOptions {
 					} else {
 						this.error = ERROR_NICK_IN_USE;
 					}
-				} else if (error.hasChild("not-authorized")) {
-					if (conversation.getBookmark() != null) {
-						this.passwordChanged = true;
-					}
+				} else if (error != null && error.hasChild("not-authorized")) {
 					this.error = ERROR_PASSWORD_REQUIRED;
-				} else if (error.hasChild("forbidden")) {
+				} else if (error != null && error.hasChild("forbidden")) {
 					this.error = ERROR_BANNED;
-				} else if (error.hasChild("registration-required")) {
+				} else if (error != null
+						&& error.hasChild("registration-required")) {
 					this.error = ERROR_MEMBERS_ONLY;
 				}
 			}
@@ -363,9 +361,4 @@ public class MucOptions {
 		conversation
 				.setAttribute(Conversation.ATTRIBUTE_MUC_PASSWORD, password);
 	}
-
-	public boolean isPasswordChanged2() {
-		return this.passwordChanged;
-	}
-
 }
\ No newline at end of file
diff --git a/src/eu/siacs/conversations/ui/ConversationFragment.java b/src/eu/siacs/conversations/ui/ConversationFragment.java
index 2fa6b4544..716e299ef 100644
--- a/src/eu/siacs/conversations/ui/ConversationFragment.java
+++ b/src/eu/siacs/conversations/ui/ConversationFragment.java
@@ -131,6 +131,14 @@ public class ConversationFragment extends Fragment {
 			activity.endConversation(conversation);
 		}
 	};
+	
+	private OnClickListener joinMuc = new OnClickListener() {
+		
+		@Override
+		public void onClick(View v) {
+			activity.xmppConnectionService.joinMuc(conversation);
+		}
+	};
 
 	private OnClickListener enterPassword = new OnClickListener() {
 
@@ -495,7 +503,7 @@ public class ConversationFragment extends Fragment {
 						break;
 					case MucOptions.KICKED_FROM_ROOM:
 						showSnackbar(R.string.conference_kicked,
-								R.string.leave, leaveMuc);
+								R.string.join, joinMuc);
 						break;
 					default:
 						break;