diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index fbec709f0c9a8320f7414d72f396a471e901e6af..d75ff0c81011a89b7f179ea71c9c1ec8712fef9a 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -156,6 +156,7 @@ elseif(DARWIN)
     # Support our "@executable_path/../Resources" load path for executables
     # that end up in any of the above SHARED_LIB_STAGING_DIR_MUMBLE
     # directories.
+    file(MAKE_DIRECTORY "${SHARED_LIB_STAGING_DIR}")
     file(CREATE_LINK "Release/Resources" "${SHARED_LIB_STAGING_DIR}/Resources"
          SYMBOLIC)
 
diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt
index 161e9577847f1854302521940e98eed02c884526..9e65ceb926af6dbe54c2a601c4b9f206505defd0 100644
--- a/indra/test/CMakeLists.txt
+++ b/indra/test/CMakeLists.txt
@@ -121,6 +121,8 @@ elseif (DARWIN)
   # executable. This SHOULD properly be "$<TARGET_FILE_DIR:lltest>/Resources",
   # but the CMake $<TARGET_FILE_DIR> generator expression isn't evaluated by
   # CREATE_LINK, so fudge it.
+  # Make sure the symlink's parent directory exists...
+  file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/test")
   file(CREATE_LINK "../sharedlibs/Release/Resources" "${CMAKE_BINARY_DIR}/test/Resources"
        SYMBOLIC)
 endif (WINDOWS)