Index: app/composite/gimp-composite.c
===================================================================
RCS file: /cvs/gnome/gimp/app/composite/gimp-composite.c,v
retrieving revision 1.30
diff -u -p -r1.30 gimp-composite.c
--- app/composite/gimp-composite.c	12 Apr 2006 12:49:12 -0000	1.30
+++ app/composite/gimp-composite.c	1 Jun 2006 15:07:58 -0000
@@ -384,3 +384,9 @@ gimp_composite_init (gboolean  be_verbos
                     can_use_vis     ? '+' : '-');
     }
 }
+
+gboolean
+gimp_composite_use_cpu_accel (void)
+{
+  return ((gimp_composite_options.bits & GIMP_COMPOSITE_OPTION_USE) != 0);
+}
Index: app/composite/gimp-composite.h
===================================================================
RCS file: /cvs/gnome/gimp/app/composite/gimp-composite.h,v
retrieving revision 1.18
diff -u -p -r1.18 gimp-composite.h
--- app/composite/gimp-composite.h	12 Apr 2006 12:49:12 -0000	1.18
+++ app/composite/gimp-composite.h	1 Jun 2006 15:07:58 -0000
@@ -158,6 +158,7 @@ extern struct GimpCompositeOptions gimp_
 
 void          gimp_composite_init               (gboolean  be_verbose,
                                                  gboolean  use_cpu_accel);
+gboolean      gimp_composite_use_cpu_accel      (void);
 
 void          gimp_composite_dispatch           (GimpCompositeContext   *ctx);
 
Index: app/plug-in/gimppluginmanager-call.c
===================================================================
RCS file: /cvs/gnome/gimp/app/plug-in/gimppluginmanager-call.c,v
retrieving revision 1.249
diff -u -p -r1.249 gimppluginmanager-call.c
--- app/plug-in/gimppluginmanager-call.c	5 May 2006 08:29:32 -0000	1.249
+++ app/plug-in/gimppluginmanager-call.c	1 Jun 2006 15:07:58 -0000
@@ -32,6 +32,8 @@
 
 #include "base/tile.h"
 
+#include "composite/gimp-composite.h"
+
 #include "core/gimp.h"
 #include "core/gimpcontext.h"
 #include "core/gimpprogress.h"
@@ -182,7 +184,7 @@ gimp_plug_in_manager_call_run (GimpPlugI
       config.check_type       = display_config->transparency_type;
       config.show_help_button = (gui_config->use_help &&
                                  gui_config->show_help_button);
-      config.gimp_reserved_4  = 0;
+      config.use_cpu_accel    = gimp_composite_use_cpu_accel ();
       config.gimp_reserved_5  = 0;
       config.gimp_reserved_6  = 0;
       config.gimp_reserved_7  = 0;
Index: libgimp/gimp.c
===================================================================
RCS file: /cvs/gnome/gimp/libgimp/gimp.c,v
retrieving revision 1.131
diff -u -p -r1.131 gimp.c
--- libgimp/gimp.c	30 May 2006 01:55:40 -0000	1.131
+++ libgimp/gimp.c	1 Jun 2006 15:07:59 -0000
@@ -180,6 +180,7 @@ static gdouble        _gamma_val        
 static gboolean       _install_cmap      = FALSE;
 static gboolean       _show_tool_tips    = TRUE;
 static gboolean       _show_help_button  = TRUE;
+static gboolean       _use_cpu_accel     = TRUE;
 static GimpCheckSize  _check_size        = GIMP_CHECK_SIZE_MEDIUM_CHECKS;
 static GimpCheckType  _check_type        = GIMP_CHECK_TYPE_GRAY_CHECKS;
 static gint           _min_colors        = 144;
@@ -1241,6 +1242,23 @@ gimp_monitor_number (void)
 }
 
 /**
+ * gimp_use_cpu_accel:
+ *
+ * Returns whether or not GIMP and its plug-ins should use
+ * CPU-specific accelerated routines (MMX, SSE, Altivec...) if
+ * available.
+ *
+ * Return value: the use_cpu_accel boolean
+ *
+ * Since: GIMP 2.4
+ **/
+gboolean
+gimp_use_cpu_accel (void)
+{
+  return _use_cpu_accel;
+}
+
+/**
  * gimp_get_progname:
  *
  * Returns the Plug-In's executable name.
@@ -1693,9 +1711,10 @@ gimp_config (GPConfig *config)
   _shm_ID           = config->shm_ID;
   _check_size       = config->check_size;
   _check_type       = config->check_type;
-  _install_cmap     = config->install_cmap;
-  _show_tool_tips   = config->show_tooltips;
-  _show_help_button = config->show_help_button;
+  _install_cmap     = config->install_cmap     ? TRUE : FALSE;
+  _show_tool_tips   = config->show_tooltips    ? TRUE : FALSE;
+  _show_help_button = config->show_help_button ? TRUE : FALSE;
+  _use_cpu_accel    = config->use_cpu_accel    ? TRUE : FALSE;
   _min_colors       = config->min_colors;
   _gdisp_ID         = config->gdisp_ID;
   _wm_class         = g_strdup (config->wm_class);
Index: libgimp/gimp.def
===================================================================
RCS file: /cvs/gnome/gimp/libgimp/gimp.def,v
retrieving revision 1.125
diff -u -p -r1.125 gimp.def
--- libgimp/gimp.def	22 Mar 2006 12:15:05 -0000	1.125
+++ libgimp/gimp.def	1 Jun 2006 15:07:59 -0000
@@ -599,6 +599,7 @@ EXPORTS
 	gimp_tile_width
 	gimp_transform_2d
 	gimp_uninstall_temp_proc
+	gimp_use_cpu_accel
 	gimp_vectors_bezier_stroke_conicto
 	gimp_vectors_bezier_stroke_cubicto
 	gimp_vectors_bezier_stroke_lineto
Index: libgimp/gimp.h
===================================================================
RCS file: /cvs/gnome/gimp/libgimp/gimp.h,v
retrieving revision 1.119
diff -u -p -r1.119 gimp.h
--- libgimp/gimp.h	29 Dec 2005 01:06:59 -0000	1.119
+++ libgimp/gimp.h	1 Jun 2006 15:07:59 -0000
@@ -319,6 +319,7 @@ gboolean      gimp_install_cmap        (
 gint          gimp_min_colors          (void) G_GNUC_CONST;
 gboolean      gimp_show_tool_tips      (void) G_GNUC_CONST;
 gboolean      gimp_show_help_button    (void) G_GNUC_CONST;
+gboolean      gimp_use_cpu_accel       (void) G_GNUC_CONST;
 GimpCheckSize gimp_check_size          (void) G_GNUC_CONST;
 GimpCheckType gimp_check_type          (void) G_GNUC_CONST;
 gint32        gimp_default_display     (void) G_GNUC_CONST;
Index: libgimpbase/gimpprotocol.c
===================================================================
RCS file: /cvs/gnome/gimp/libgimpbase/gimpprotocol.c,v
retrieving revision 1.40
diff -u -p -r1.40 gimpprotocol.c
--- libgimpbase/gimpprotocol.c	12 Apr 2006 10:53:24 -0000	1.40
+++ libgimpbase/gimpprotocol.c	1 Jun 2006 15:07:59 -0000
@@ -496,7 +496,7 @@ _gp_config_read (GIOChannel      *channe
                               user_data))
     goto cleanup;
   if (! _gimp_wire_read_int8 (channel,
-                              (guint8 *) &config->gimp_reserved_4, 1,
+                              (guint8 *) &config->use_cpu_accel, 1,
                               user_data))
     goto cleanup;
   if (! _gimp_wire_read_int8 (channel,
@@ -585,7 +585,7 @@ _gp_config_write (GIOChannel      *chann
                                user_data))
     return;
   if (! _gimp_wire_write_int8 (channel,
-                               (const guint8 *) &config->gimp_reserved_4, 1,
+                               (const guint8 *) &config->use_cpu_accel, 1,
                                user_data))
     return;
   if (! _gimp_wire_write_int8 (channel,
Index: libgimpbase/gimpprotocol.h
===================================================================
RCS file: /cvs/gnome/gimp/libgimpbase/gimpprotocol.h,v
retrieving revision 1.35
diff -u -p -r1.35 gimpprotocol.h
--- libgimpbase/gimpprotocol.h	12 Apr 2006 10:53:24 -0000	1.35
+++ libgimpbase/gimpprotocol.h	1 Jun 2006 15:07:59 -0000
@@ -69,7 +69,7 @@ struct _GPConfig
   gint8    check_size;
   gint8    check_type;
   gint8    show_help_button;
-  gint8    gimp_reserved_4;
+  gint8    use_cpu_accel;
   gint8    gimp_reserved_5;
   gint8    gimp_reserved_6;
   gint8    gimp_reserved_7;
