Index: calendar/gui/e-week-view.c
===================================================================
--- calendar/gui/e-week-view.c	(revision 33743)
+++ calendar/gui/e-week-view.c	(working copy)
@@ -2061,7 +2061,7 @@
 		return FALSE;
 
 	if (event->button == 1 && event->type == GDK_2BUTTON_PRESS) {
-		e_calendar_view_new_appointment_full (E_CALENDAR_VIEW (week_view), TRUE, FALSE);
+		e_calendar_view_new_appointment_full (E_CALENDAR_VIEW (week_view), TRUE, FALSE, FALSE);
 		return TRUE;
 	}
 
Index: calendar/gui/e-calendar-view.c
===================================================================
--- calendar/gui/e-calendar-view.c	(revision 33743)
+++ calendar/gui/e-calendar-view.c	(working copy)
@@ -1145,7 +1145,7 @@
 {
 	ECalendarView *cal_view = data;
 
-	e_calendar_view_new_appointment_full (cal_view, TRUE, FALSE);
+	e_calendar_view_new_appointment_full (cal_view, TRUE, FALSE, FALSE);
 }
 
 static void
@@ -1153,7 +1153,7 @@
 {
 	ECalendarView *cal_view = data;
 
-	e_calendar_view_new_appointment_full (cal_view, FALSE, TRUE);
+	e_calendar_view_new_appointment_full (cal_view, FALSE, TRUE, FALSE);
 }
 
 static void
@@ -1891,18 +1891,19 @@
  *
  * Opens an event editor dialog for a new appointment. The appointment's
  * start and end times are set to the currently selected time range in
- * the calendar view, with exception when this time is in past, then
- * current date is used too.
+ * the calendar view.
+ *
+ * With @actual_day set to TRUE, there will be always used actual day.
  */
 void
-e_calendar_view_new_appointment_full (ECalendarView *cal_view, gboolean all_day, gboolean meeting)
+e_calendar_view_new_appointment_full (ECalendarView *cal_view, gboolean all_day, gboolean meeting, gboolean actual_day)
 {
 	time_t dtstart, dtend;
 
 	g_return_if_fail (E_IS_CALENDAR_VIEW (cal_view));
 
-	if (!e_calendar_view_get_selected_time_range (cal_view, &dtstart, &dtend) ||
-	    dtstart / (60 * 60 * 24) < time (NULL) / (60 * 60 * 24)) {
+	if (actual_day ||
+	    !e_calendar_view_get_selected_time_range (cal_view, &dtstart, &dtend)) {
 		dtstart = time (NULL);
 		dtend = dtstart + 3600;
 	}
@@ -1918,7 +1919,7 @@
 {
 	g_return_if_fail (E_IS_CALENDAR_VIEW (cal_view));
 
-	e_calendar_view_new_appointment_full (cal_view, FALSE, FALSE);
+	e_calendar_view_new_appointment_full (cal_view, FALSE, FALSE, FALSE);
 }
 
 /* Ensures the calendar is selected */
Index: calendar/gui/e-calendar-view.h
===================================================================
--- calendar/gui/e-calendar-view.h	(revision 33743)
+++ calendar/gui/e-calendar-view.h	(working copy)
@@ -152,7 +152,8 @@
 						    gboolean meeting);
 void           e_calendar_view_new_appointment_full (ECalendarView *cal_view,
 						     gboolean all_day,
-						     gboolean meeting);
+						     gboolean meeting,
+						     gboolean actual_day);
 void           e_calendar_view_new_appointment (ECalendarView *cal_view);
 void           e_calendar_view_edit_appointment (ECalendarView *cal_view,
 					    ECal *client,
Index: calendar/gui/calendar-component.c
===================================================================
--- calendar/gui/calendar-component.c	(revision 33743)
+++ calendar/gui/calendar-component.c	(working copy)
@@ -1255,7 +1255,7 @@
 		    || view_type == GNOME_CAL_LIST_VIEW)
 			is_allday = TRUE;
 
-		e_calendar_view_new_appointment_full (view, is_allday, is_meeting);
+		e_calendar_view_new_appointment_full (view, is_allday, is_meeting, TRUE);
 	} else {
 		ECalComponent *comp;
 		EventEditor *editor;
Index: calendar/ChangeLog
===================================================================
--- calendar/ChangeLog	(revision 33743)
+++ calendar/ChangeLog	(working copy)
@@ -1,3 +1,16 @@
+2007-07-03  Milan Crha  <mcrha@redhat.com>
+
+	** Fix for bug #321741
+
+	* gui/e-calendar-view.h:
+	* gui/e-calendar-view.c: (e_calendar_view_new_appointment_full):
+	Added new parameter 'actual_day', with true always use actual day.
+	* gui/e-calendar-view.c: (on_new_event), (on_new_meeting),
+	(e_calendar_view_new_appointment):
+	* gui/calendar-component.c: (create_new_event):
+	* gui/e-week-view.c: (e_week_view_on_button_press):
+	Changing call of 'e_calendar_view_new_appointment_full'.
+
 2007-06-18  Srinivasa Ragavan  <sragavan@novell.com>
 
         ** Fix for bug #448223 from Gilles Dartiguelongue
