diff --git a/src/vcard.py b/src/vcard.py
index 6532ab7db3a44f09d9a7a6bb312b48f0495df5f1..38a200561ffc27942bb8800ed19f925e2a6b3f55 100644
--- a/src/vcard.py
+++ b/src/vcard.py
@@ -42,16 +42,20 @@ def get_avatar_pixbuf_encoded_mime(photo):
 	img_decoded = None
 	avatar_encoded = None
 	avatar_mime_type = None
-	if photo.has_key('BINVAL') and photo.has_key('TYPE'):
+	if photo.has_key('BINVAL'):
 		img_encoded = photo['BINVAL']
 		avatar_encoded = img_encoded
-		avatar_mime_type = photo['TYPE']
 		try:
 			img_decoded = base64.decodestring(img_encoded)
 		except:
 			pass
 	if img_decoded:
-		pixbuf = gtkgui_helpers.get_pixbuf_from_data(img_decoded)
+		if photo.has_key('TYPE'):
+			avatar_mime_type = photo['TYPE']
+			pixbuf = gtkgui_helpers.get_pixbuf_from_data(img_decoded)
+		else:
+			pixbuf, avatar_mime_type = gtkgui_helpers.get_pixbuf_from_data(
+							img_decoded, want_type=True)
 	else:
 		pixbuf = None
 	return pixbuf, avatar_encoded, avatar_mime_type