diff --git a/Sources/XCTest/Public/XCTestCase+Asynchronous.swift b/Sources/XCTest/Public/XCTestCase+Asynchronous.swift
index 52fb874..7380db7 100644
--- a/Sources/XCTest/Public/XCTestCase+Asynchronous.swift
+++ b/Sources/XCTest/Public/XCTestCase+Asynchronous.swift
@@ -170,7 +170,7 @@
         // Start observing the notification with specified name and object.
         var observer: NSObjectProtocol? = nil
         func removeObserver() {
-            if let observer = observer as? AnyObject {
+            if let observer = observer {
                 NotificationCenter.default.removeObserver(observer)
             }
         }
diff --git a/Tests/Functional/lit.cfg b/Tests/Functional/lit.cfg
index 5d40f8f..a8a8f05 100644
--- a/Tests/Functional/lit.cfg
+++ b/Tests/Functional/lit.cfg
@@ -81,12 +81,16 @@
     # swift-corelibs-foundation is using it.
     libdispatch_src_dir = os.getenv('LIBDISPATCH_SRC_DIR')
     libdispatch_build_dir = os.getenv('LIBDISPATCH_BUILD_DIR')
-    if (libdispatch_src_dir is not None) and (libdispatch_build_dir is not None):
-        swift_exec.extend([
-            '-Xcc', '-fblocks',
-            '-I', libdispatch_src_dir,
-            '-L', libdispatch_build_dir,
-        ])
+    libdispatch_overlay_dir = os.getenv('LIBDISPATCH_OVERLAY_DIR')
+    if ((libdispatch_src_dir is not None) 
+        and (libdispatch_build_dir is not None)
+        and (libdispatch_overlay_dir is not None)):
+            swift_exec.extend([
+                '-Xcc', '-fblocks',
+                '-I', libdispatch_src_dir,
+                '-I', libdispatch_overlay_dir,
+                '-L', libdispatch_build_dir,
+            ])
 
 # Having prepared the swiftc command, we set the substitution.
 config.substitutions.append(('%{swiftc}', ' '.join(swift_exec)))
diff --git a/XCTest.xcodeproj/project.pbxproj b/XCTest.xcodeproj/project.pbxproj
index 5093573..a961c4f 100644
--- a/XCTest.xcodeproj/project.pbxproj
+++ b/XCTest.xcodeproj/project.pbxproj
@@ -449,7 +449,6 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
 				FRAMEWORK_VERSION = A;
 				INFOPLIST_FILE = Info.plist;
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
@@ -472,7 +471,6 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_INSTALL_NAME_BASE = "@rpath";
-				EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
 				FRAMEWORK_VERSION = A;
 				INFOPLIST_FILE = Info.plist;
 				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
diff --git a/build_script.py b/build_script.py
index 44223cd..7d6ab90 100755
--- a/build_script.py
+++ b/build_script.py
@@ -109,8 +109,7 @@
             "-configuration {style_options} "
             "SWIFT_EXEC=\"{swiftc}\" "
             "SWIFT_LINK_OBJC_RUNTIME=YES "
-            "SYMROOT=\"{build_dir}\" OBJROOT=\"{build_dir}\" "
-            "| grep -v \"    export\"".format(
+            "SYMROOT=\"{build_dir}\" OBJROOT=\"{build_dir}\" ".format(
                 swiftc=swiftc,
                 build_dir=build_dir,
                 style_options=style_options,
@@ -238,9 +237,13 @@
             symlink_force(os.path.join(args.libdispatch_build_dir, "src", ".libs", "libdispatch.so"),
                 foundation_build_dir)
         if args.libdispatch_src_dir and args.libdispatch_build_dir:
-            libdispatch_src_args = "LIBDISPATCH_SRC_DIR={libdispatch_src_dir} LIBDISPATCH_BUILD_DIR={libdispatch_build_dir}".format(
-                libdispatch_src_dir=os.path.abspath(args.libdispatch_src_dir),
-                libdispatch_build_dir=os.path.join(args.libdispatch_build_dir, 'src', '.libs'))
+            libdispatch_src_args = ( 
+               "LIBDISPATCH_SRC_DIR={libdispatch_src_dir} "
+               "LIBDISPATCH_BUILD_DIR={libdispatch_build_dir} "
+               "LIBDISPATCH_OVERLAY_DIR={libdispatch_overlay_dir}".format(
+                   libdispatch_src_dir=os.path.abspath(args.libdispatch_src_dir),
+                   libdispatch_build_dir=os.path.join(args.libdispatch_build_dir, 'src', '.libs'),
+                   libdispatch_overlay_dir=os.path.join(args.libdispatch_build_dir, 'src', 'swift')))
         else:
             libdispatch_src_args = ""
 
