diff --git a/src/calendar/e-cal-backend-mapi.c b/src/calendar/e-cal-backend-mapi.c
index 2c04ae6..3831909 100644
--- a/src/calendar/e-cal-backend-mapi.c
+++ b/src/calendar/e-cal-backend-mapi.c
@@ -1853,7 +1853,7 @@ e_cal_backend_mapi_send_objects (ECalBackendSync *backend, EDataCal *cal, const
 			mid = exchange_mapi_create_item (olFolderOutbox, 0, 
 							exchange_mapi_cal_util_build_name_id, GINT_TO_POINTER(kind), 
 							exchange_mapi_cal_util_build_props, &cbdata, 
-							recipients, attachments, streams, 0);
+							recipients, attachments, streams, MAPI_OPTIONS_MOVE_TO_SENTITEMS);
 			g_free (cbdata.props);
 			if (!mid) {
 				g_object_unref (comp);
diff --git a/src/camel/camel-mapi-transport.c b/src/camel/camel-mapi-transport.c
index 1bef7de..f17b3ab 100644
--- a/src/camel/camel-mapi-transport.c
+++ b/src/camel/camel-mapi-transport.c
@@ -87,7 +87,7 @@ mapi_message_item_send (MapiItem *item)
 	mid = exchange_mapi_create_item (olFolderOutbox, fid, NULL, NULL, 
 					 camel_mapi_utils_create_item_build_props,
 					 item, item->recipients,
-					 item->attachments, item->generic_streams, 0);
+					 item->attachments, item->generic_streams, MAPI_OPTIONS_MOVE_TO_SENTITEMS);
 
 	return mid;
 }
diff --git a/src/libexchangemapi/exchange-mapi-connection.c b/src/libexchangemapi/exchange-mapi-connection.c
index a6ab2bb..f2fe77a 100644
--- a/src/libexchangemapi/exchange-mapi-connection.c
+++ b/src/libexchangemapi/exchange-mapi-connection.c
@@ -2157,11 +2157,38 @@ exchange_mapi_create_item (uint32_t olFolder, mapi_id_t fid,
 		if (retval != MAPI_E_SUCCESS) {
 			mapi_errstr("SubmitMessage", GetLastError());
 			goto cleanup;
+		} else if ((options & MAPI_OPTIONS_MOVE_TO_SENTITEMS) != 0) {
+			/* move to sent items */
+			mapi_id_t sent_fid = 0;
+
+			mid = mapi_object_get_id (&obj_message);
+
+			if (GetDefaultFolder (&obj_store, &sent_fid, olFolderSentMail) == MAPI_E_SUCCESS) {
+				mapi_object_t obj_sent_folder;
+				mapi_object_init (&obj_sent_folder);
+
+				if (OpenFolder (&obj_store, sent_fid, &obj_sent_folder) == MAPI_E_SUCCESS) {
+					mapi_id_array_t ids;
+
+					mapi_id_array_init (&ids);
+					mapi_id_array_add_id (&ids, mid);
+					
+					if (MoveCopyMessages (&obj_folder, &obj_sent_folder, &ids, FALSE) != MAPI_E_SUCCESS) {
+						mapi_errstr ("MoveCopyMessages to Sent Mail folder", GetLastError());
+					}
+
+					mapi_id_array_release (&ids);
+				}
+
+				mapi_object_release (&obj_sent_folder);
+			}
+		} else {
+			mid = mapi_object_get_id (&obj_message);
 		}
+	} else {
+		mid = mapi_object_get_id (&obj_message);
 	}
 
-	mid = mapi_object_get_id (&obj_message);
-
 cleanup:
 	mapi_object_release(&obj_message);
 	mapi_object_release(&obj_folder);
diff --git a/src/libexchangemapi/exchange-mapi-connection.h b/src/libexchangemapi/exchange-mapi-connection.h
index b2db6a8..c1acc4b 100644
--- a/src/libexchangemapi/exchange-mapi-connection.h
+++ b/src/libexchangemapi/exchange-mapi-connection.h
@@ -38,7 +38,8 @@ typedef enum {
 	MAPI_OPTIONS_DONT_SUBMIT = 1<<5, 
 	MAPI_OPTIONS_GETBESTBODY = 1<<6,
 	MAPI_OPTIONS_USE_PFSTORE = 1<<7,
-	MAPI_OPTIONS_DONT_OPEN_MESSAGE = 1<<8
+	MAPI_OPTIONS_DONT_OPEN_MESSAGE = 1<<8,
+	MAPI_OPTIONS_MOVE_TO_SENTITEMS = 1<<9
 } ExchangeMAPIOptions;
 
 #define MAPI_OPTIONS_FETCH_ALL MAPI_OPTIONS_FETCH_ATTACHMENTS | \
