diff --git a/src/eu/siacs/conversations/parser/MessageParser.java b/src/eu/siacs/conversations/parser/MessageParser.java
index 0f95627d3..4b9bb3548 100644
--- a/src/eu/siacs/conversations/parser/MessageParser.java
+++ b/src/eu/siacs/conversations/parser/MessageParser.java
@@ -285,6 +285,10 @@ public class MessageParser extends AbstractParser implements
 						.findOrCreateConversation(account,
 								packet.getAttribute("from"), true);
 				if (!conversation.getMucOptions().online()) {
+					if (x.hasChild("password")) {
+						Element password = x.findChild("password");
+						conversation.getMucOptions().setPassword(password.getContent());
+					}
 					mXmppConnectionService.joinMuc(conversation);
 					mXmppConnectionService.updateConversationUi();
 				}
@@ -293,10 +297,14 @@ public class MessageParser extends AbstractParser implements
 		} else if (packet.hasChild("x", "jabber:x:conference")) {
 			Element x = packet.findChild("x", "jabber:x:conference");
 			String jid = x.getAttribute("jid");
+			String password = x.getAttribute("password");
 			if (jid != null) {
 				Conversation conversation = mXmppConnectionService
 						.findOrCreateConversation(account, jid, true);
 				if (!conversation.getMucOptions().online()) {
+					if (password != null) {
+						conversation.getMucOptions().setPassword(password);
+					}
 					mXmppConnectionService.joinMuc(conversation);
 					mXmppConnectionService.updateConversationUi();
 				}