diff --git a/cal.tgz b/cal.tgz
index 259d9563..2c080ac5 100644
Binary files a/cal.tgz and b/cal.tgz differ
diff --git a/cal/cal.php b/cal/cal.php
index b9c27755..8841be43 100644
--- a/cal/cal.php
+++ b/cal/cal.php
@@ -62,9 +62,9 @@ function cal_content()
 	//  requested? then show all of your events, otherwise only those that 
 	//  don't have limitations set in allow_cid and allow_gid
 	if (local_user() == $uid) {
-	    $r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location` FROM `event` WHERE `uid`=".$uid.";");
+	    $r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location` FROM `event` WHERE `uid`=".$uid." and `cid`=0;");
 	} else {
-	    $r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location` FROM `event` WHERE `allow_cid`='' and `allow_gid`='' and `uid`='".$uid."';");
+	    $r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location` FROM `event` WHERE `allow_cid`='' and `allow_gid`='' and `uid`='".$uid."' and `cid`='0';");
 	}
 	//  we have the events that are available for the requestor
 	//  now format the output according to the requested format
@@ -106,13 +106,16 @@ function cal_format_output ($r, $f, $tz)
 	case "ical":
 	    header("Content-type: text/ics");
 	    $o = 'BEGIN:VCALENDAR'. PHP_EOL
-		. 'PRODID:-//friendica calendar export//0.1//EN' . PHP_EOL
-		. 'VERSION:2.0' . PHP_EOL;
+		. 'VERSION:2.0' . PHP_EOL
+		. 'PRODID:-//friendica calendar export//0.1//EN' . PHP_EOL;
 //  TODO include timezone informations in cases were the time is not in UTC
 //  see http://tools.ietf.org/html/rfc2445#section-4.8.3
 //		. 'BEGIN:VTIMEZONE' . PHP_EOL
 //		. 'TZID:' . $tz . PHP_EOL
 //		. 'END:VTIMEZONE' . PHP_EOL;
+//  TODO instead of PHP_EOL CRLF should be used for long entries
+//       but test your solution against http://icalvalid.cloudapp.net/
+//       also long lines SHOULD be split at 75 characters length
 	    foreach ($r as $rr) {
 		if ($rr['adjust'] == 1) {
 		    $UTC = 'Z';
@@ -133,14 +136,17 @@ function cal_format_output ($r, $f, $tz)
 		if ($rr['summary'])
 		    $tmp = $rr['summary'];
 		    $tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp);
+		    $tmp = addcslashes($tmp, ',;');
 		    $o .= 'SUMMARY:' . $tmp . PHP_EOL;
 		if ($rr['desc'])
 		    $tmp = $rr['desc'];
 		    $tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp);
+		    $tmp = addcslashes($tmp, ',;');
 		    $o .= 'DESCRIPTION:' . $tmp . PHP_EOL;
 		if ($rr['location']) {
 		    $tmp = $rr['location'];
 		    $tmp = str_replace(PHP_EOL, PHP_EOL.' ',$tmp);
+		    $tmp = addcslashes($tmp, ',;');
 		    $o .= 'LOCATION:' . $tmp . PHP_EOL;
 		}
 		$o .= 'END:VEVENT' . PHP_EOL;