diff --git a/scikits/learn/manifold/compression/cost_function/setup.py b/scikits/learn/manifold/compression/cost_function/setup.py
index fdca1b61a6ddf48c37509a0771e7fdd220c4f058..41c4894b6e4a2c72aed1dbd3273e3dcdf4d15f83 100644
--- a/scikits/learn/manifold/compression/cost_function/setup.py
+++ b/scikits/learn/manifold/compression/cost_function/setup.py
@@ -1,16 +1,22 @@
 import numpy
+from ConfigParser import ConfigParser
+
 
 def configuration(parent_package='', top_path=None):
     from numpy.distutils.misc_util import Configuration
+    from numpy.distutils.system_info import get_standard_file
 
     config = Configuration('cost_function',parent_package,top_path)
+    site_cfg = ConfigParser()
+    site_cfg.read(get_standard_file('site.cfg'))
 
-    include_dirs=['../../src', '.', numpy.get_include()]
-
-    config.add_extension('_cost_function',
-                         sources=["cost_function.cpp"],
-                         include_dirs=include_dirs
-                         )
+    if site_cfg.has_section('scikit-learn') and site_cfg.getboolean('scikit-learn', 'use_boost'):
+        # build this extension if enabled in site.cfg
+        include_dirs=['../../src', '.', numpy.get_include()]
+        config.add_extension('_cost_function',
+                             sources=['cost_function.cpp'],
+                             include_dirs=include_dirs
+                             )
     return config
 
 if __name__ == '__main__':
diff --git a/scikits/learn/manifold/regression/cluster/setup.py b/scikits/learn/manifold/regression/cluster/setup.py
index 965981b5ebd0619371a30dc2a73f5495c394143a..aaeb3e9dbb4864edb5fabbefa36dc018fca433fd 100644
--- a/scikits/learn/manifold/regression/cluster/setup.py
+++ b/scikits/learn/manifold/regression/cluster/setup.py
@@ -1,15 +1,22 @@
 import numpy
+from ConfigParser import ConfigParser
 
 def configuration(parent_package='', top_path=None):
     from numpy.distutils.misc_util import Configuration
+    from numpy.distutils.system_info import get_standard_file
+
     config = Configuration('cluster',parent_package,top_path)
 
-    include_dirs=['../../src', '.', numpy.get_include()]
+    site_cfg = ConfigParser()
+    site_cfg.read(get_standard_file('site.cfg'))
+    if site_cfg.has_section('scikit-learn') and site_cfg.getboolean('scikit-learn', 'use_boost'):
+        # build this extension if enabled in site.cfg
+        include_dirs=['../../src', '.', numpy.get_include()]
+        config.add_extension('_modified_general_clustering',
+                             sources=['ModifiedGeneralClustering.i'],
+                             include_dirs=include_dirs
+                             )
 
-    config.add_extension('_modified_general_clustering',
-                         sources=["ModifiedGeneralClustering.i"],
-                         include_dirs=include_dirs
-                         )
     return config
 
 if __name__ == '__main__':
diff --git a/site.cfg b/site.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..541fdae454cfd6da0d6fdd7b10a070917656001f
--- /dev/null
+++ b/site.cfg
@@ -0,0 +1,3 @@
+[scikit-learn]
+#compile libraries that depend on boost
+use_boost=0