diff --git a/apps/calendar/ajax/events.php b/apps/calendar/ajax/events.php
index 1436f634316d41a09d9550d395cc40d0b18071ef..098e539a2de0322c72ce18119646dbe409cdc8e8 100755
--- a/apps/calendar/ajax/events.php
+++ b/apps/calendar/ajax/events.php
@@ -44,8 +44,8 @@ foreach($events as $event){
 	$return_event = create_return_event($event, $vevent);
 
 	$dtstart = $vevent->DTSTART;
-	$dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent);
 	$start_dt = $dtstart->getDateTime();
+	$dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent);
 	$end_dt = $dtend->getDateTime();
 	if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE){
 		$return_event['allDay'] = true;
diff --git a/apps/calendar/lib/object.php b/apps/calendar/lib/object.php
index 230c610d35a4305df3711857d1b26a0aa103aad7..b84e575bc8358c2baf68ad8fd543517021d7ea9c 100644
--- a/apps/calendar/lib/object.php
+++ b/apps/calendar/lib/object.php
@@ -309,6 +309,8 @@ class OC_Calendar_Object{
 			$dtend = $vevent->DTEND;
 		}else{
 			$dtend = clone $vevent->DTSTART;
+			// clone creates a shallow copy, also clone DateTime
+			$dtend->setDateTime(clone $dtend->getDateTime(), $dtend->getDateType());
 			if ($vevent->DURATION){
 				$duration = strval($vevent->DURATION);
 				$invert = 0;
@@ -817,4 +819,4 @@ class OC_Calendar_Object{
 
 		return $vcalendar;
 	}
-}
\ No newline at end of file
+}