diff --git a/Lib/test/test_import.py b/Lib/test/test_import.py
index 7f1e37f..44e67c3 100644
--- a/Lib/test/test_import.py
+++ b/Lib/test/test_import.py
@@ -1,5 +1,6 @@
 import unittest
 import os
+import stat
 import random
 import shutil
 import sys
@@ -7,7 +8,7 @@
 import warnings
 import imp
 import marshal
-from test.support import unlink, TESTFN, unload, run_unittest
+from test.support import unlink, TESTFN, unload, run_unittest, TestFailed
 
 
 def remove_files(name):
@@ -80,6 +81,32 @@
         finally:
             del sys.path[0]
 
+    @unittest.skipUnless(os.name == 'posix', "test meaningful only on posix systems")
+    def test_execute_bit_not_copied(self):
+        # Issue 6070: under posix .pyc files got their execute bit set if
+        # the .py file had the execute bit set, but they aren't executable.
+        oldmask = os.umask(0o022)
+        sys.path.insert(0, os.curdir)
+        try:
+            fname = TESTFN + os.extsep + "py"
+            f = open(fname, 'w').close()
+            os.chmod(fname, (stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH |
+                             stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH))
+            __import__(TESTFN)
+            fn = fname + 'c'
+            if not os.path.exists(fn):
+                fn = fname + 'o'
+                if not os.path.exists(fn): raise TestFailed("__import__ did "
+                    "not result in creation of either a .pyc or .pyo file")
+            s = os.stat(fn)
+            self.assertEquals(stat.S_IMODE(s.st_mode),
+                              stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH)
+        finally:
+            os.umask(oldmask)
+            remove_files(TESTFN)
+            if TESTFN in sys.modules: del sys.modules[TESTFN]
+            del sys.path[0]
+
     def testImpModule(self):
         # Verify that the imp module can correctly load and find .py files
         import imp
@@ -230,6 +257,7 @@
         else:
             self.fail("import by path didn't raise an exception")
 
+
 class TestPycRewriting(unittest.TestCase):
     # Test that the `co_filename` attribute on code objects always points
     # to the right file, even when various things happen (e.g. both the .py
diff --git a/Python/import.c b/Python/import.c
index 23dd7b4..0d50f5b 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -931,7 +931,11 @@
 {
 	FILE *fp;
 	time_t mtime = srcstat->st_mtime;
-	mode_t mode = srcstat->st_mode;
+#ifdef MS_WINDOWS   /* since Windows uses different permissions  */
+	mode_t mode = srcstat->st_mode & ~S_IEXEC;
+#else
+	mode_t mode = srcstat->st_mode & ~S_IXUSR & ~S_IXGRP & ~S_IXOTH;
+#endif 
 
 	fp = open_exclusive(cpathname, mode);
 	if (fp == NULL) {
