diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
index 3567db8..48f3fe4 100644
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
@@ -56,18 +56,6 @@
     """
     return sys.version[:3]
 
-def _get_build_dir(name, plat_specific):
-    # Assume the executable is in the build directory.  The
-    # pyconfig.h file should be in the same directory.  Since
-    # the build directory may not be the source directory, we
-    # must use "srcdir" from the makefile to find the "Include"
-    # directory.
-    base = os.path.dirname(os.path.abspath(sys.executable))
-    if plat_specific:
-        return base
-    else:
-        thedir = os.path.join(get_config_var('srcdir'), name)
-        return os.path.normpath(thedir)
 
 def get_python_inc(plat_specific=0, prefix=None):
     """Return the directory containing installed Python header files.
@@ -84,7 +72,17 @@
         prefix = plat_specific and EXEC_PREFIX or PREFIX
     if os.name == "posix":
         if python_build:
-            return _get_build_dir('Include', plat_specific)
+            # Assume the executable is in the build directory.  The
+            # pyconfig.h file should be in the same directory.  Since
+            # the build directory may not be the source directory, we
+            # must use "srcdir" from the makefile to find the "Include"
+            # directory.
+            base = os.path.dirname(os.path.abspath(sys.executable))
+            if plat_specific:
+                return base
+            else:
+                incdir = os.path.join(get_config_var('srcdir'), 'Include')
+                return os.path.normpath(incdir)
         return os.path.join(prefix, "include", "python" + get_python_version())
     elif os.name == "nt":
         return os.path.join(prefix, "include")
@@ -119,8 +117,6 @@
         prefix = plat_specific and EXEC_PREFIX or PREFIX
 
     if os.name == "posix":
-        if python_build:
-            return _get_build_dir('Lib', plat_specific)
         libpython = os.path.join(prefix,
                                  "lib", "python" + get_python_version())
         if standard_lib:
diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
index 7372e3e..147bd6d 100644
--- a/Lib/sysconfig.py
+++ b/Lib/sysconfig.py
@@ -123,9 +123,8 @@
 
 if _PYTHON_BUILD:
     for scheme in ('posix_prefix', 'posix_home'):
-        _INSTALL_SCHEMES[scheme]['include'] = '{projectbase}/Include'
+        _INSTALL_SCHEMES[scheme]['include'] = '{srcdir}/Include'
         _INSTALL_SCHEMES[scheme]['platinclude'] = '{projectbase}/.'
-        _INSTALL_SCHEMES[scheme]['stdlib'] = '{projectbase}/Lib'
 
 def _subst_vars(s, local_vars):
     try:
