diff --git a/src/vcard.py b/src/vcard.py
index ca6571702bf64bcf03742ee2d3c52aec321ce9d9..c1d86afb139d8389fa6449b0a649501c81dd03c9 100644
--- a/src/vcard.py
+++ b/src/vcard.py
@@ -296,8 +296,10 @@ class VcardWindow:
 		gajim.connections[self.account].request_last_status_time(self.contact.jid,
 			self.contact.resource)
 
-		# do not wait for os_info if contact is not connected
-		if self.contact.show in ('offline', 'error'):
+		# do not wait for os_info if contact is not connected or has error
+		# additional check for observer is needed, as show is offline for him
+		if self.contact.show in ('offline', 'error')\
+		and not self.contact.is_observer():
 			self.os_info_arrived = True
 		else: # Request os info if contact is connected
 			gobject.idle_add(gajim.connections[self.account].request_os_info,