diff --git a/src/adhoc_commands.py b/src/adhoc_commands.py
index 85b946b1417e485c853f532b84010e1911a019cf..9b96f0fee7c3958997202fc0684d47fe6915033b 100644
--- a/src/adhoc_commands.py
+++ b/src/adhoc_commands.py
@@ -297,7 +297,9 @@ class CommandWindow:
 		self.send_command(action)
 
 	def stage3_next_form(self, command):
-		assert isinstance(command, xmpp.Node)
+		if not isinstance(command, xmpp.Node):
+			self.stage5(error=_('Service sent malformed data'), senderror=True)
+			return
 
 		self.remove_pulsing()
 		self.sending_form_progressbar.hide()
@@ -307,6 +309,7 @@ class CommandWindow:
 		elif self.sessionid != command.getAttr('sessionid'):
 			self.stage5(error=_('Service changed the session identifier.'),
 				senderror=True)
+			return
 
 		self.form_status = command.getAttr('status')