--- a/calendar/gui/dialogs//event-page.c	2010-07-23 05:45:00.000000000 +0530
+++ b/calendar/gui/dialogs//event-page.c	2010-07-23 15:19:02.665608932 +0530
@@ -104,6 +104,7 @@
 	GtkWidget *info_hbox;
 	GtkWidget *info_icon;
 	GtkWidget *info_string;
+	GtkWidget *info_msg;
 	gchar *subscriber_info_text;
 
 	GtkWidget *summary;
@@ -765,15 +766,16 @@
 	sensitize = !read_only && sens;
 
 	if (read_only) {
-		gchar *tmp = g_strconcat ("<b>", _("Event cannot be edited, because the selected calendar is read only"), "</b>", NULL);
-		event_page_set_info_string (epage, GTK_STOCK_DIALOG_INFO, tmp);
+		gchar *tmp = g_strconcat ("<b>", _("Event cannot be edited."), "</b>", NULL);
+		event_page_set_info_string (epage, GTK_STOCK_DIALOG_INFO, tmp, " This might be because the selected calendar is read only.");
 		g_free (tmp);
 	} else if (!sens) {
-		gchar *tmp = g_strconcat ("<b>", _("Event cannot be fully edited, because you are not the organizer"), "</b>", NULL);
-		event_page_set_info_string (epage, GTK_STOCK_DIALOG_INFO, tmp);
+		gchar *tmp = g_strconcat ("<b>", _("Event cannot be fully edited. "), "</b>", NULL);
+		event_page_set_info_string (epage, GTK_STOCK_DIALOG_INFO, tmp, 
+				" This might be because either you are not an organizer or the backend does not support it.");
 		g_free (tmp);
 	} else {
-		event_page_set_info_string (epage, priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, priv->subscriber_info_text);
+		event_page_set_info_string (epage, priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, priv->subscriber_info_text, NULL);
 	}
 
 	alarm = e_dialog_combo_box_get (priv->alarm_time_combo, priv->alarm_map) != ALARM_NONE;
@@ -2193,15 +2195,19 @@
 
 /*If the msg has some value set, the icon should always be set */
 void
-event_page_set_info_string (EventPage *epage, const gchar *icon, const gchar *msg)
+event_page_set_info_string (EventPage *epage, const gchar *icon, const gchar *msg, const gchar *msg_details)
 {
 	EventPagePrivate *priv;
 
 	priv = epage->priv;
 
 	gtk_image_set_from_stock (GTK_IMAGE (priv->info_icon), icon, GTK_ICON_SIZE_BUTTON);
-	gtk_label_set_markup (GTK_LABEL(priv->info_string), msg);
-
+	gtk_expander_set_use_markup (GTK_EXPANDER(priv->info_msg), TRUE);
+	gtk_expander_set_label (GTK_EXPANDER(priv->info_msg), msg);
+	if(msg_details!=NULL)
+	{
+		gtk_label_set_text (GTK_LABEL(priv->info_string), msg_details);
+	}
 	if (msg && icon)
 		gtk_widget_show (priv->info_hbox);
 	else
@@ -2270,6 +2276,7 @@
 	priv->info_hbox = GW ("generic-info");
 	priv->info_icon = GW ("generic-info-image");
 	priv->info_string = GW ("generic-info-msgs");
+	priv->info_msg = GW ("generic-info-message");
 
 	priv->invite = GW ("invite");
 	priv->invite_label = GW ("invite-label");
@@ -2702,12 +2709,12 @@
 		   (meeting or appointment)  on behalf of some other user */
 		epage->priv->subscriber_info_text = g_markup_printf_escaped (_("You are acting on behalf of %s"), backend_address);
 
-		event_page_set_info_string (epage, GTK_STOCK_DIALOG_INFO, epage->priv->subscriber_info_text);
+		event_page_set_info_string (epage, GTK_STOCK_DIALOG_INFO, epage->priv->subscriber_info_text,NULL);
 	} else {
 		g_free (epage->priv->subscriber_info_text);
 		epage->priv->subscriber_info_text = NULL;
 
-		event_page_set_info_string (epage, NULL, NULL);
+		event_page_set_info_string (epage, NULL, NULL,NULL);
 	}
 }
 
--- a/calendar/gui/dialogs//event-page.glade	2009-12-14 05:55:58.000000000 +0530
+++ b/calendar/gui/dialogs//event-page.glade	2010-07-30 11:30:13.835988240 +0530
@@ -63,29 +63,35 @@
 	  </child>
 
 	  <child>
-	    <widget class="GtkLabel" id="generic-info-msgs">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes"></property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
+	    <widget class="GtkExpander" id="generic-info-message">
+		<property name="spacing">0</property>
+	       	<property name="visible">True</property>
+		<child>
+		  <widget class="GtkLabel" id="generic-info-msgs">
+		     <property name="visible">True</property>
+		     <property name="label" translatable="yes"/>
+		     <property name="use_underline">False</property>
+		     <property name="use_markup">False</property>
+		     <property name="justify">GTK_JUSTIFY_LEFT</property>
+		     <property name="wrap">False</property>
+		     <property name="selectable">False</property>
+		     <property name="xalign">0.5</property>
+		     <property name="yalign">0.5</property>
+		     <property name="xpad">0</property>
+		     <property name="ypad">0</property>
+		     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		     <property name="width_chars">-1</property>
+		     <property name="single_line_mode">False</property>
+		     <property name="angle">0</property>
+	         </widget>
+	 	</child>
+	   </widget>
+	   <packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+	   </packing>
+	 </child>
 	</widget>
 	<packing>
 	  <property name="padding">3</property>
--- a/calendar/gui/dialogs//event-page.h	2010-07-23 05:45:00.000000000 +0530
+++ b/calendar/gui/dialogs//event-page.h	2010-07-23 15:19:02.666609119 +0530
@@ -95,7 +95,8 @@
 void		event_page_show_alarm		(EventPage *epage);
 void		event_page_set_info_string	(EventPage *epage,
 						 const gchar *icon,
-						 const gchar *msg);
+						 const gchar *msg,
+						 const gchar *msg_details);
 
 void		event_page_set_view_role	(EventPage *epage,
 						 gboolean state);
--- a/calendar/gui/dialogs//memo-page.c	2009-12-14 05:55:58.000000000 +0530
+++ b/calendar/gui/dialogs//memo-page.c	2010-07-23 15:19:08.257734875 +0530
@@ -72,6 +72,7 @@
 	GtkWidget *info_hbox;
 	GtkWidget *info_icon;
 	GtkWidget *info_string;
+	GtkWidget *info_msg;
 	gchar *subscriber_info_text;
 
 	/* Organizer */
@@ -344,15 +345,15 @@
 	sensitize = (!read_only && sens);
 
 	if (read_only) {
-		gchar *tmp = g_strconcat ("<b>", _("Memo cannot be edited, because the selected memo list is read only"), "</b>", NULL);
-		memo_page_set_info_string (mpage, GTK_STOCK_DIALOG_INFO, tmp);
+		gchar *tmp = g_strconcat ("<b>", _("Memo cannot be edited."), "</b>", NULL);
+		memo_page_set_info_string (mpage, GTK_STOCK_DIALOG_INFO, tmp, " This is because the selected memo list is read only");
 		g_free (tmp);
 	} else if (!sens) {
-		gchar *tmp = g_strconcat ("<b>", _("Memo cannot be fully edited, because you are not the organizer"), "</b>", NULL);
-		memo_page_set_info_string (mpage, GTK_STOCK_DIALOG_INFO, tmp);
+		gchar *tmp = g_strconcat ("<b>", _("Memo cannot be fully edited. "), "</b>", NULL);
+		memo_page_set_info_string (mpage, GTK_STOCK_DIALOG_INFO, tmp, "This is because either you are not the organizer or the backend doesn't support it");
 		g_free (tmp);
 	} else {
-		memo_page_set_info_string (mpage, priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, priv->subscriber_info_text);
+		memo_page_set_info_string (mpage, priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, priv->subscriber_info_text, NULL);
 	}
 
 	/* The list of organizers is set to be non-editable. Otherwise any
@@ -740,14 +741,19 @@
 
 /*If the msg has some value set, the icon should always be set */
 void
-memo_page_set_info_string (MemoPage *mpage, const gchar *icon, const gchar *msg)
+memo_page_set_info_string (MemoPage *mpage, const gchar *icon, const gchar *msg, const gchar *msg_details)
 {
 	MemoPagePrivate *priv;
 
 	priv = mpage->priv;
 
 	gtk_image_set_from_stock (GTK_IMAGE (priv->info_icon), icon, GTK_ICON_SIZE_BUTTON);
-	gtk_label_set_markup (GTK_LABEL(priv->info_string), msg);
+	gtk_expander_set_use_markup (GTK_EXPANDER(priv->info_msg), TRUE);
+	gtk_expander_set_label (GTK_EXPANDER(priv->info_msg), msg);
+
+	if(msg_details!=NULL)
+		gtk_label_set_text (GTK_LABEL(priv->info_string), msg_details);
+
 
 	if (msg && icon)
 		gtk_widget_show (priv->info_hbox);
@@ -788,6 +794,7 @@
 	priv->info_hbox = GW ("generic-info");
 	priv->info_icon = GW ("generic-info-image");
 	priv->info_string = GW ("generic-info-msgs");
+	priv->info_msg = GW ("generic-info-message");
 
 	priv->org_label = GW ("org-label");
 	priv->org_combo = GW ("org-combo");
@@ -908,12 +915,12 @@
 		/* Translators: This string is used when we are creating a Memo
 		   on behalf of some other user */
 		mpage->priv->subscriber_info_text = g_markup_printf_escaped (_("You are acting on behalf of %s"), backend_address);
-		memo_page_set_info_string (mpage, GTK_STOCK_DIALOG_INFO, mpage->priv->subscriber_info_text);
+		memo_page_set_info_string (mpage, GTK_STOCK_DIALOG_INFO, mpage->priv->subscriber_info_text, NULL);
 	} else {
 		g_free (mpage->priv->subscriber_info_text);
 		mpage->priv->subscriber_info_text = NULL;
 
-		memo_page_set_info_string (mpage, NULL, NULL);
+		memo_page_set_info_string (mpage, NULL, NULL, NULL);
 	}
 }
 
--- a/calendar/gui/dialogs//memo-page.glade	2009-12-14 05:55:58.000000000 +0530
+++ b/calendar/gui/dialogs//memo-page.glade	2010-08-04 15:12:55.070057874 +0530
@@ -45,22 +45,28 @@
 	  </child>
 
 	  <child>
-	    <widget class="GtkLabel" id="generic-info-msgs">
+	    <widget class="GtkExpander" id="generic-info-message">
+              <property name="spacing">0</property>
 	      <property name="visible">True</property>
-	      <property name="label" translatable="yes"></property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
+	      <child>
+                  <widget class="GtkLabel" id="generic-info-msgs">
+    	            <property name="visible">True</property>
+        	    <property name="label" translatable="yes"/>
+		    <property name="use_underline">False</property>
+		    <property name="use_markup">False</property>
+		    <property name="justify">GTK_JUSTIFY_LEFT</property>
+		    <property name="wrap">False</property>
+		    <property name="selectable">False</property>
+		    <property name="xalign">0.5</property>
+		    <property name="yalign">0.5</property>
+		    <property name="xpad">0</property>
+		    <property name="ypad">0</property>
+		    <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		    <property name="width_chars">-1</property>
+		    <property name="single_line_mode">False</property>
+		    <property name="angle">0</property>
+        	  </widget>
+		</child>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
--- a/calendar/gui/dialogs//memo-page.h	2009-11-28 21:15:50.000000000 +0530
+++ b/calendar/gui/dialogs//memo-page.h	2010-07-30 11:02:07.310112430 +0530
@@ -71,7 +71,8 @@
 						 gboolean state);
 void		memo_page_set_info_string	(MemoPage *mpage,
 						 const gchar *icon,
-						 const gchar *msg);
+						 const gchar *msg,
+						 const gchar *msg_details);
 
 G_END_DECLS
 
--- a/calendar/gui/dialogs//task-page.c	2009-12-14 05:55:58.000000000 +0530
+++ b/calendar/gui/dialogs//task-page.c	2010-07-23 15:19:08.259734127 +0530
@@ -85,6 +85,7 @@
 	GtkWidget *info_hbox;
 	GtkWidget *info_icon;
 	GtkWidget *info_string;
+	GtkWidget *info_msg;
 	gchar *subscriber_info_text;
 
 	GtkWidget *summary;
@@ -333,15 +334,15 @@
 	sensitize = (!read_only && sens);
 
 	if (read_only) {
-		gchar *tmp = g_strconcat ("<b>", _("Task cannot be edited, because the selected task list is read only"), "</b>", NULL);
-		task_page_set_info_string (tpage, GTK_STOCK_DIALOG_INFO, tmp);
+		gchar *tmp = g_strconcat ("<b>", _("Task cannot be edited. "), "</b>", NULL);
+		task_page_set_info_string (tpage, GTK_STOCK_DIALOG_INFO, tmp, "This is because the selected task list is read only");
 		g_free (tmp);
 	} else if (!sens) {
-		gchar *tmp = g_strconcat ("<b>", _("Task cannot be fully edited, because you are not the organizer"), "</b>", NULL);
-		task_page_set_info_string (tpage, GTK_STOCK_DIALOG_INFO, tmp);
+		gchar *tmp = g_strconcat ("<b>", _("Task cannot be fully edited."), "</b>", NULL);
+		task_page_set_info_string (tpage, GTK_STOCK_DIALOG_INFO, tmp, "This is because either you are not the organizer or the backend doesn't support it.");
 		g_free (tmp);
 	} else {
-		task_page_set_info_string (tpage, priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, priv->subscriber_info_text);
+		task_page_set_info_string (tpage, priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, priv->subscriber_info_text, NULL);
 	}
 
 	/* The list of organizers is set to be non-editable. Otherwise any
@@ -1378,14 +1379,19 @@
 
 /*If the msg has some value set, the icon should always be set */
 void
-task_page_set_info_string (TaskPage *tpage, const gchar *icon, const gchar *msg)
+task_page_set_info_string (TaskPage *tpage, const gchar *icon, const gchar *msg, const gchar *msg_details)
 {
 	TaskPagePrivate *priv;
 
 	priv = tpage->priv;
 
 	gtk_image_set_from_stock (GTK_IMAGE (priv->info_icon), icon, GTK_ICON_SIZE_BUTTON);
-	gtk_label_set_markup (GTK_LABEL(priv->info_string), msg);
+	gtk_expander_set_use_markup (GTK_EXPANDER(priv->info_msg), TRUE);
+	gtk_expander_set_label (GTK_EXPANDER(priv->info_msg), msg);
+
+	if(msg_details!=NULL)
+		gtk_label_set_text (GTK_LABEL(priv->info_string), msg_details);
+
 
 	if (msg && icon)
 		gtk_widget_show (priv->info_hbox);
@@ -1824,12 +1830,12 @@
 		   on behalf of some other user */
 		tpage->priv->subscriber_info_text = g_markup_printf_escaped (_("You are acting on behalf of %s"), backend_address);
 
-		task_page_set_info_string (tpage, GTK_STOCK_DIALOG_INFO, tpage->priv->subscriber_info_text);
+		task_page_set_info_string (tpage, GTK_STOCK_DIALOG_INFO, tpage->priv->subscriber_info_text, NULL);
 	} else {
 		g_free (tpage->priv->subscriber_info_text);
 		tpage->priv->subscriber_info_text = NULL;
 
-		task_page_set_info_string (tpage, NULL, NULL);
+		task_page_set_info_string (tpage, NULL, NULL, NULL);
 	}
 }
 
--- a/calendar/gui/dialogs//task-page.glade	2009-12-14 05:55:58.000000000 +0530
+++ b/calendar/gui/dialogs//task-page.glade	2010-08-04 15:06:54.508058255 +0530
@@ -46,35 +46,34 @@
 	  </child>
 
 	  <child>
-	    <widget class="GtkLabel" id="generic-info-msgs">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes"></property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
+	     <object class="GtkExpander" id="generic-info-message">
+             <property name="spacing">0</property>
+             <property name="visible">True</property>
+	     <child>
+	        <widget class="GtkLabel" id="generic-info-msgs">
+		  <property name="visible">True</property>
+       	          <property name="label" translatable="yes"/>
+	          <property name="use_underline">False</property>
+	          <property name="use_markup">False</property>
+	          <property name="justify">GTK_JUSTIFY_LEFT</property>
+	          <property name="wrap">False</property>
+	          <property name="selectable">False</property>
+	          <property name="xalign">0.5</property>
+	          <property name="yalign">0.5</property>
+	          <property name="xpad">0</property>
+	          <property name="ypad">0</property>
+	          <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	          <property name="width_chars">-1</property>
+	          <property name="single_line_mode">False</property>
+	          <property name="angle">0</property>
+      	        </widget>
+	     </child>
 	    </widget>
 	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">3</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
+	  	<property name="padding">3</property>
+	 	<property name="expand">False</property>
+	 	<property name="fill">False</property>
+	   </packing>
       </child>
 
       <child>
--- a/calendar/gui/dialogs//task-page.h	2009-11-28 21:15:50.000000000 +0530
+++ b/calendar/gui/dialogs//task-page.h	2010-07-23 15:19:08.261734356 +0530
@@ -95,7 +95,8 @@
 						 gboolean state);
 void		task_page_set_info_string	(TaskPage *tpage,
 						 const gchar *icon,
-						 const gchar *msg);
+						 const gchar *msg,
+						 const gchar *msg_details);
 void		task_page_add_attendee		(TaskPage *tpage,
 						 EMeetingAttendee *attendee);
 
