diff -Nur -x '*.orig' -x '*~' empathy-2.28.1.1/data/empathy.schemas.in empathy-2.28.1.1.new/data/empathy.schemas.in
--- empathy-2.28.1.1/data/empathy.schemas.in	2009-11-10 21:27:57.335031192 -0600
+++ empathy-2.28.1.1.new/data/empathy.schemas.in	2009-11-10 21:31:56.251063792 -0600
@@ -464,6 +464,20 @@
     </schema>
 
     <schema>
+      <key>/schemas/apps/empathy/conversation/enable_logging</key>
+      <applyto>/apps/empathy/conversation/enable_logging</applyto>
+      <owner>empathy</owner>
+      <type>bool</type>
+      <default>true</default>
+      <locale name="C">
+        <short>Keep logs of conversations</short>
+        <long>
+        Whether or not Empathy should keep log of conversations with your contacts.
+        </long>
+      </locale>
+    </schema>
+
+    <schema>
       <key>/schemas/apps/empathy/hints/close_main_window</key>
       <applyto>/apps/empathy/hints/close_main_window</applyto>
       <owner>empathy</owner>
diff -Nur -x '*.orig' -x '*~' empathy-2.28.1.1/libempathy/empathy-log-manager.c empathy-2.28.1.1.new/libempathy/empathy-log-manager.c
--- empathy-2.28.1.1/libempathy/empathy-log-manager.c	2009-10-22 09:21:09.000000000 -0500
+++ empathy-2.28.1.1.new/libempathy/empathy-log-manager.c	2009-11-10 21:49:04.261092792 -0600
@@ -44,6 +44,7 @@
 typedef struct
 {
   GList *stores;
+  gboolean enabled;
 } EmpathyLogManagerPriv;
 
 G_DEFINE_TYPE (EmpathyLogManager, empathy_log_manager, G_TYPE_OBJECT);
@@ -85,6 +86,7 @@
 
       priv->stores = g_list_append (priv->stores,
           g_object_new (EMPATHY_TYPE_LOG_STORE_EMPATHY, NULL));
+      priv->enabled = TRUE;
     }
 
   return retval;
@@ -138,6 +140,9 @@
 
   priv = GET_PRIV (manager);
 
+  if (!priv->enabled)
+    return TRUE;
+
   for (l = priv->stores; l; l = g_list_next (l))
     {
       if (!tp_strdiff (empathy_log_store_get_name (
@@ -453,3 +458,15 @@
   g_signal_connect (dispatcher, "observe",
       G_CALLBACK (log_manager_dispatcher_observe_cb), log_manager);
 }
+
+void
+empathy_log_manager_set_enabled (EmpathyLogManager *log_manager,
+                                 gboolean          enabled)
+{
+  EmpathyLogManagerPriv *priv;
+
+  g_return_if_fail (EMPATHY_IS_LOG_MANAGER (log_manager));
+
+  priv = GET_PRIV (log_manager);
+  priv->enabled = enabled;
+}
diff -Nur -x '*.orig' -x '*~' empathy-2.28.1.1/libempathy/empathy-log-manager.h empathy-2.28.1.1.new/libempathy/empathy-log-manager.h
--- empathy-2.28.1.1/libempathy/empathy-log-manager.h	2009-10-22 04:49:16.000000000 -0500
+++ empathy-2.28.1.1.new/libempathy/empathy-log-manager.h	2009-11-10 21:50:28.923097391 -0600
@@ -97,6 +97,8 @@
 void empathy_log_manager_search_hit_free (EmpathyLogSearchHit *hit);
 void empathy_log_manager_observe (EmpathyLogManager *log_manager,
     EmpathyDispatcher *dispatcher);
+void empathy_log_manager_set_enabled (EmpathyLogManager *log_manager,
+    gboolean enabled);
 
 G_END_DECLS
 
diff -Nur -x '*.orig' -x '*~' empathy-2.28.1.1/libempathy-gtk/empathy-conf.h empathy-2.28.1.1.new/libempathy-gtk/empathy-conf.h
--- empathy-2.28.1.1/libempathy-gtk/empathy-conf.h	2009-11-10 21:27:57.335031192 -0600
+++ empathy-2.28.1.1.new/libempathy-gtk/empathy-conf.h	2009-11-10 21:34:16.139092364 -0600
@@ -68,6 +68,7 @@
 #define EMPATHY_PREFS_CHAT_SPELL_CHECKER_ENABLED   EMPATHY_PREFS_PATH "/conversation/spell_checker_enabled"
 #define EMPATHY_PREFS_CHAT_NICK_COMPLETION_CHAR    EMPATHY_PREFS_PATH "/conversation/nick_completion_char"
 #define EMPATHY_PREFS_CHAT_AVATAR_IN_ICON          EMPATHY_PREFS_PATH "/conversation/avatar_in_icon"
+#define EMPATHY_PREFS_CHAT_ENABLE_LOGGING          EMPATHY_PREFS_PATH "/conversation/enable_logging"
 #define EMPATHY_PREFS_CHAT_WEBKIT_DEVELOPER_TOOLS  EMPATHY_PREFS_PATH "/conversation/enable_webkit_developer_tools"
 #define EMPATHY_PREFS_UI_SEPARATE_CHAT_WINDOWS     EMPATHY_PREFS_PATH "/ui/separate_chat_windows"
 #define EMPATHY_PREFS_UI_MAIN_WINDOW_HIDDEN        EMPATHY_PREFS_PATH "/ui/main_window_hidden"
diff -Nur -x '*.orig' -x '*~' empathy-2.28.1.1/src/empathy.c empathy-2.28.1.1.new/src/empathy.c
--- empathy-2.28.1.1/src/empathy.c	2009-10-26 11:58:13.000000000 -0500
+++ empathy-2.28.1.1.new/src/empathy.c	2009-11-10 21:59:23.453514893 -0600
@@ -241,6 +241,19 @@
 }
 
 static void
+enable_logging_notify_cb (EmpathyConf *conf,
+                         const gchar *key,
+                         gpointer     user_data)
+{
+  EmpathyLogManager *log_manager = user_data;
+  gboolean          enable_logging;
+
+  if (empathy_conf_get_bool (conf, key, &enable_logging)) {
+    empathy_log_manager_set_enabled (log_manager, enable_logging);
+  }
+}
+
+static void
 create_salut_account_if_needed (EmpathyConnectionManagers *managers)
 {
   EmpathyAccountSettings  *settings;
@@ -957,6 +970,9 @@
   log_manager = empathy_log_manager_dup_singleton ();
   empathy_log_manager_observe (log_manager, dispatcher);
 
+  enable_logging_notify_cb (empathy_conf_get (), EMPATHY_PREFS_CHAT_ENABLE_LOGGING, log_manager);
+  empathy_conf_notify_add (empathy_conf_get (), EMPATHY_PREFS_CHAT_ENABLE_LOGGING, enable_logging_notify_cb, log_manager);
+
   chatroom_manager = empathy_chatroom_manager_dup_singleton (NULL);
   empathy_chatroom_manager_observe (chatroom_manager, dispatcher);
 
