diff --git a/Makefile b/Makefile
index 57883221ae94ecb158878f70c55d047f2474d536..71c8f00167cce4485a6fbe59b98af50c577c330f 100644
--- a/Makefile
+++ b/Makefile
@@ -252,7 +252,7 @@ MOD_SUBDIRS_MENUSELECT_TREE:=$(MOD_SUBDIRS:%=%-menuselect-tree)
 
 ifneq ($(findstring darwin,$(OSARCH)),)
   _ASTCFLAGS+=-D__Darwin__
-  _SOLINK=-Xlinker -macosx_version_min -Xlinker 10.4 -Xlinker -undefined -Xlinker dynamic_lookup -force_flat_namespace
+  _SOLINK=-Xlinker -macosx_version_min -Xlinker 10.4 -Xlinker -undefined -Xlinker dynamic_lookup
   ifeq ($(shell if test `/usr/bin/sw_vers -productVersion | cut -c4` -gt 5; then echo 6; else echo 0; fi),6)
     _SOLINK+=/usr/lib/bundle1.o
   endif
@@ -268,6 +268,9 @@ else
   endif
 endif
 
+# Include rpath settings
+_ASTLDFLAGS+=$(AST_RPATH)
+
 ifeq ($(OSARCH),SunOS)
   SOLINK=-shared -fpic -L/usr/local/ssl/lib -lrt
   DYLINK=$(SOLINK)
diff --git a/UPGRADE-11.txt b/UPGRADE-11.txt
index d565602d9a0081b3593360e8e07392e6056f949a..de880408f840458a16cfb570ae377b2d2c09a983 100644
--- a/UPGRADE-11.txt
+++ b/UPGRADE-11.txt
@@ -20,6 +20,14 @@
 ===
 ===========================================================
 
+From 11.2 to 11.3:
+
+* Now by default, when Asterisk is installed in a path other than /usr, the
+  Asterisk binary will search for shared libraries in ${libdir} in addition to
+  searching system libraries. This allows Asterisk to find its shared
+  libraries without having to specify LD_LIBRARY_PATH. This can be disabled by
+  passing --disable-rpath to configure.
+
 From 10 to 11:
 
 Voicemail:
diff --git a/UPGRADE.txt b/UPGRADE.txt
index 2ba2ea9f297df7bc1c409c6b42fc347725f4deb7..3f6169ade6397ec66025f6f197ccaffbfa197acc 100644
--- a/UPGRADE.txt
+++ b/UPGRADE.txt
@@ -21,7 +21,6 @@
 ===
 ===========================================================
 
-From 11 to 12:
 
 AMI:
  - The SIP SIPqualifypeer action now sends a response indicating it will qualify
diff --git a/configure b/configure
index edbf19ca14a93151baefef09eb70fd264f59b24b..5abec2de7a816cfa1c3656d54b94e2d9c26b191d 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.ac Revision: 377981 .
+# From configure.ac Revision: 378915 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.69 for asterisk trunk.
 #
@@ -684,6 +684,7 @@ PBX_DLADDR
 PBX_IP_MTU_DISCOVER
 PBX_GLOB_BRACE
 PBX_GLOB_NOMAGIC
+AST_RPATH
 AST_NESTED_FUNCTIONS
 AST_NATIVE_ARCH
 AST_SHADOW_WARNINGS
@@ -1302,6 +1303,7 @@ enable_xmldoc
 enable_largefile
 enable_internal_poll
 enable_asteriskssl
+enable_rpath
 '
       ac_precious_vars='build_alias
 host_alias
@@ -1946,6 +1948,7 @@ Optional Features:
   --disable-largefile     omit support for large files
   --enable-internal-poll  Use Asterisk's poll implementation
   --disable-asteriskssl   Disable Asterisk's SSL wrapper library
+  --disable-rpath         Disables rpath linker option checking
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -16394,6 +16397,45 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 
+# Check whether --enable-rpath was given.
+if test "${enable_rpath+set}" = set; then :
+  enableval=$enable_rpath; case "${enableval}" in
+		y|ye|yes) check_rpath=yes ;;
+		n|no) check_rpath=no ;;
+                *) as_fn_error $? "bad value ${enableval} for --disable-rpath" "$LINENO" 5 ;;
+	esac
+else
+  check_rpath=yes
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use rpath" >&5
+$as_echo_n "checking whether to use rpath... " >&6; }
+AST_RPATH=
+if test "${check_rpath}" != yes; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: skipped" >&5
+$as_echo "skipped" >&6; }
+elif test "${prefix}" = /usr || test "${prefix}" = NONE; then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not needed" >&5
+$as_echo "not needed" >&6; }
+else
+	case "${host_os}" in
+		darwin*)
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported" >&5
+$as_echo "not supported" >&6; }
+			# We set macosx_version_min to 10.4, which doesn't
+			# support rpath. However, we set install_name on our
+			# dylibs, so it's not strictly necessary.
+			;;
+		*)
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: required" >&5
+$as_echo "required" >&6; }
+			AST_RPATH="-Wl,-rpath,${libdir}"
+			;;
+	esac
+fi
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysinfo" >&5
 $as_echo_n "checking for sysinfo... " >&6; }
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
diff --git a/configure.ac b/configure.ac
index 536d4425f5446392225630ab8cf312d880c2ae1d..b5f4d29a2fc4c58f3626bae7960f846316ba7863 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1054,6 +1054,38 @@ AC_COMPILE_IFELSE(
 )
 AC_SUBST(AST_NESTED_FUNCTIONS)
 
+dnl Check to see if rpath should be set in LDFLAGS
+AC_ARG_ENABLE(rpath,
+	[AC_HELP_STRING([--disable-rpath],
+			[Disables rpath linker option checking])],
+	[case "${enableval}" in
+		y|ye|yes) check_rpath=yes ;;
+		n|no) check_rpath=no ;;
+                *) AC_MSG_ERROR(bad value ${enableval} for --disable-rpath) ;;
+	esac], [check_rpath=yes])
+
+AC_MSG_CHECKING(whether to use rpath)
+AST_RPATH=
+if test "${check_rpath}" != yes; then
+	AC_MSG_RESULT(skipped)
+elif test "${prefix}" = /usr || test "${prefix}" = NONE; then
+	AC_MSG_RESULT(not needed)
+else
+	case "${host_os}" in
+		darwin*)
+			AC_MSG_RESULT(not supported)
+			# We set macosx_version_min to 10.4, which doesn't
+			# support rpath. However, we set install_name on our
+			# dylibs, so it's not strictly necessary.
+			;;
+		*)
+			AC_MSG_RESULT(required)
+			AST_RPATH="-Wl,-rpath,${libdir}"
+			;;
+	esac
+fi
+AC_SUBST(AST_RPATH)
+
 AC_MSG_CHECKING(for sysinfo)
 AC_LINK_IFELSE(
         [AC_LANG_PROGRAM([#include <sys/sysinfo.h>],
diff --git a/main/Makefile b/main/Makefile
index fbb885cf8c20ad9dba2a7c5783be3944e6ae176e..5dec42e682dd8e68e879a3ec7df71f51af232fc9 100644
--- a/main/Makefile
+++ b/main/Makefile
@@ -226,6 +226,9 @@ $(ASTSSL_LIB): $(ASTSSL_LIB).$(ASTSSL_SO_VERSION)
 else # Darwin
 ASTSSL_LIB:=libasteriskssl.dylib
 
+# -install_name allows library to be found if installed somewhere other than
+# /lib or /usr/lib
+$(ASTSSL_LIB): _ASTLDFLAGS+=-dynamiclib -install_name $(ASTLIBDIR)/$(ASTSSL_LIB)
 $(ASTSSL_LIB): _ASTCFLAGS+=-fPIC -DAST_MODULE=\"asteriskssl\"
 $(ASTSSL_LIB): LIBS+=$(ASTSSL_LIBS)
 $(ASTSSL_LIB): SOLINK=$(DYLINK)
diff --git a/makeopts.in b/makeopts.in
index c10507fcb7b2c82dd18aa2fa05da7b8156afce96..c0b043474b0e89791cf00079a0b89b6d6e6c5f80 100644
--- a/makeopts.in
+++ b/makeopts.in
@@ -108,6 +108,7 @@ AST_TRAMPOLINES=@AST_TRAMPOLINES@
 AST_NO_STRICT_OVERFLOW=@AST_NO_STRICT_OVERFLOW@
 AST_SHADOW_WARNINGS=@AST_SHADOW_WARNINGS@
 AST_NESTED_FUNCTIONS=@AST_NESTED_FUNCTIONS@
+AST_RPATH=@AST_RPATH@
 AST_FORTIFY_SOURCE=@AST_FORTIFY_SOURCE@
 AST_MARCH_NATIVE=@AST_MARCH_NATIVE@