Index: class.vcaladdressbook.inc.php
===================================================================
--- class.vcaladdressbook.inc.php	(revision 24468)
+++ class.vcaladdressbook.inc.php	(working copy)
@@ -311,6 +311,34 @@
 			'URL;WORK'	=> array('url'),
 			'URL'		=> array('url_home'),
 		);
+		# iik1 - syncevolution
+		$defaultFields[7] = array( 
+			'N'		=> array('n_family','n_given','n_middle','n_prefix','n_suffix'),
+			'TITLE'		=> array('title'),
+			'ROLE'		=> array('role'),
+			'ORG'		=> array('org_name','org_unit','room'),
+			'ADR;WORK'	=> array('','adr_one_street2','adr_one_street','adr_one_locality','adr_one_region',
+							'adr_one_postalcode','adr_one_countryname'),
+			'ADR;HOME'	=> array('','adr_two_street2','adr_two_street','adr_two_locality','adr_two_region',
+							'adr_two_postalcode','adr_two_countryname'),
+			'TEL;WORK;VOICE'	=> array('tel_work'),
+			'TEL;HOME;VOICE'	=> array('tel_home'),
+			'TEL;CELL;WORK'	=> array('tel_cell'),
+			'TEL;FAX;WORK'	=> array('tel_fax'),
+			'TEL;FAX;HOME'	=> array('tel_fax_home'),
+			'TEL;PAGER;WORK' => array('tel_pager'),
+			'TEL;CAR'	=> array('tel_car'),
+			'TEL;VOICE'	=> array('tel_other'),
+			'EMAIL;INTERNET;WORK'	=> array('email'),
+			'EMAIL;INTERNET;HOME'	=> array('email_home'),
+			'URL;WORK'		=> array('url'),
+			'BDAY'		=> array('bday'),
+			'CATEGORIES'	=> array('cat_id'),
+			'NOTE'		=> array('note'),
+			'X-EVOLUTION-ASSISTANT'		=> array('assistent'),
+			// segmentation fault ? 'PHOTO;JPEG'		=> array('jpegphoto'),
+		);
+
 		//error_log("Client: $_productManufacturer $_productName");
 		switch(strtolower($_productManufacturer))
 		{
@@ -395,10 +423,13 @@
 			case 'file':	// used outside of SyncML, eg. by the calendar itself ==> all possible fields
 				$this->supportedFields = $defaultFields[1];
 				break;
+			case 'patrick ohly':	// 'Patrick Ohly' 'SyncEvolution' - iik1
+				$this->supportedFields = $defaultFields[7];
+				break;
 
 			// the fallback for SyncML
 			default:
-				error_log("Client not found: $_productManufacturer $_productName");
+				error_log("Client not found: [$_productManufacturer] [$_productName]");
 				$this->supportedFields = $defaultFields[0];
 				break;
 		}
@@ -422,6 +453,9 @@
 		// Unfold any folded lines.
 		$vCardUnfolded = preg_replace ('/(\r|\n)+ /', ' ', $_vcard);
 
+		// iik1 Get rid of TYPE= eg syncevolution, they are not supported
+		$vCardUnfolded = preg_replace ('/TYPE=/', '', $vCardUnfolded);
+		
 		if(!$vCard->parsevCalendar($vCardUnfolded, 'VCARD')) {
 			return False;
 		}
@@ -459,6 +493,14 @@
 			{
 				$rowName .= ';HOME';
 			}
+			if(isset($vcardRow['params']['VOICE'])) // iik1 syncevolution
+			{
+				$rowName .= ';VOICE';
+			}
+			if(isset($vcardRow['params']['CAR'])) // iik1 syncevolution
+			{
+				$rowName .= ';CAR';
+			}
 
 			$rowNames[$rowName] = $key;
 		}
