Index: configure.in
===================================================================
--- configure.in	(Revision 3014)
+++ configure.in	(Arbeitskopie)
@@ -133,6 +133,11 @@ AC_ARG_ENABLE(sm,
                  [disable metacity's session management support, for embedded/size-sensitive custom non-GNOME builds]),,
   enable_sm=auto)
 
+AC_ARG_ENABLE(sm-client-warnings,
+  AC_HELP_STRING([--enable-sm-client-warnings],
+                 [warn on logout if running clients don't support session saving]),,
+  enable_sm_client_warnings=no)
+
 AC_ARG_ENABLE(startup-notification,
   AC_HELP_STRING([--disable-startup-notification],
                  [disable metacity's startup notification support, for embedded/size-sensitive custom non-GNOME builds]),,
@@ -444,6 +449,12 @@ fi
 
 AM_CONDITIONAL(HAVE_SM, test "$found_sm" = "yes") 
 
+if test "$enable_sm_client_warnings" = "yes"; then
+   AC_DEFINE(HAVE_SM_CLIENT_WARNINGS, , [Warn on logout about running clients that don't support SM])
+fi
+
+AM_CONDITIONAL(HAVE_SM_CLIENT_WARNINGS, test "$enable_sm_client_warnings" = "yes") 
+
 HOST_ALIAS=$host_alias
 AC_SUBST(HOST_ALIAS)
 
Index: src/session.c
===================================================================
--- src/session.c	(Revision 3014)
+++ src/session.c	(Arbeitskopie)
@@ -83,7 +83,12 @@ static char*       load_state         (c
 static void        regenerate_save_file (void);
 static const char* full_save_file       (void);
 static const char* base_save_file       (void);
+
+
+static void        finish_interact                             (gboolean shutdown);
+#ifdef HAVE_SM_CLIENT_WARNINGS
 static void        warn_about_lame_clients_and_finish_interact (gboolean shutdown);
+#endif /* HAVE_SM_CLIENT_WARNINGS */
 
 /* This is called when data is available on an ICE connection.  */
 static gboolean
@@ -571,7 +576,11 @@ interact_callback (SmcConn smc_conn, SmP
 
   current_state = STATE_DONE_WITH_INTERACT;
 
+#ifdef HAVE_SM_CLIENT_WARNINGS
   warn_about_lame_clients_and_finish_interact (shutdown);
+#else /* HAVE_SM_CLIENT_WARNINGS */
+  finish_interact (shutdown);
+#endif /* HAVE_SM_CLIENT_WARNINGS */
 }
 
 static void
@@ -1713,6 +1722,8 @@ base_save_file (void)
   return relative_save_path;
 }
 
+#ifdef HAVE_SM_CLIENT_WARNINGS
+
 static int
 windows_cmp_by_title (MetaWindow *a,
                       MetaWindow *b)
@@ -1727,6 +1738,8 @@ typedef struct
   gboolean shutdown;
 } LameClientsDialogData;
 
+#endif /* HAVE_SM_CLIENT_WARNINGS */
+
 static void
 finish_interact (gboolean shutdown)
 {
@@ -1738,6 +1751,8 @@ finish_interact (gboolean shutdown)
     }
 }
 
+#ifdef HAVE_SM_CLIENT_WARNINGS
+
 static gboolean  
 io_from_warning_dialog (GIOChannel   *channel,
                         GIOCondition  condition,
@@ -1925,5 +1940,6 @@ warn_about_lame_clients_and_finish_inter
                        d, g_free);
   g_io_channel_unref (channel);
 }
+#endif /* HAVE_SM_CLIENT_WARNINGS */
 
 #endif /* HAVE_SM */
