diff --git a/NEWS.txt b/NEWS.txt
index b91c98ceb436f2d5e33be9e7619fad8130ef45fe..4928664c232ef1ff7d20050d7002c47b61a30647 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -4,6 +4,9 @@ Whats new in ZODB 3.8.1
 
 Bugs Fixed:
 
+- (unreleased) Fixed setup.py use of setuptools vs distutils, so .c and .h
+  files are included in the bdist_egg.
+
 - (beta 7) Fixed a bug, introduced in an earlier beta, that allowed
   clients to connect to out of date servers.
 
diff --git a/setup.py b/setup.py
index e269183abf3955616835ae11604d9dc70f78c930..ed66130791f0134ef2b2d41b912f26ff0c7f7804 100644
--- a/setup.py
+++ b/setup.py
@@ -39,7 +39,15 @@ Operating System :: Unix
 
 try:
     from setuptools import setup
+    from setuptools.extension import Extension
+    from setuptools.dist import Distribution
+    from setuptools.command.install_lib import install_lib
+    from setuptools.command.build_py import build_py
 except ImportError:
+    from distutils.extension import Extension
+    from distutils.dist import Distribution
+    from distutils.command.install_lib import install_lib
+    from distutils.command.build_py import build_py
     from distutils.core import setup
     extra = dict(
         scripts = ["src/ZODB/scripts/fsdump.py",
@@ -86,11 +94,7 @@ else:
 import glob
 import os
 import sys
-from distutils.extension import Extension
 from distutils import dir_util
-from distutils.dist import Distribution
-from distutils.command.install_lib import install_lib
-from distutils.command.build_py import build_py
 from distutils.util import convert_path
 
 if sys.version_info < (2, 4, 2):