diff --git a/bootstrap.sh b/bootstrap.sh
index 106f202a2a069f2b56d87ddb4e6f8364c082db7a..baf9474f48a06406431dbe688ac1caacb9fc53da 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -13,6 +13,10 @@ check_for_app() {
 # On Linux, environment variables tell which one to use.
 
 case `uname -sr` in
+	DragonFly*)
+		MY_AC_VER=
+		MY_AM_VER=
+		;;
 	FreeBSD*)
 		MY_AC_VER=
 		MY_AM_VER=
diff --git a/bridges/bridge_softmix/include/bridge_softmix_internal.h b/bridges/bridge_softmix/include/bridge_softmix_internal.h
index 3aa90915defd4099b34ec287a4603d92d7a42f6c..15856b3786572467f9c26e0869bcc3028bd59b8e 100644
--- a/bridges/bridge_softmix/include/bridge_softmix_internal.h
+++ b/bridges/bridge_softmix/include/bridge_softmix_internal.h
@@ -57,7 +57,7 @@
 #include <fftw3.h>
 #endif
 
-#if defined(__Darwin__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__CYGWIN__)
+#if defined(__Darwin__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__CYGWIN__)
 #include <float.h>
 #else
 #include <values.h>
diff --git a/channels/chan_oss.c b/channels/chan_oss.c
index 69863d27101be93b920341bbb6fe35500396fb67..7866813011357f203b807f0d135852d9bd77a0dc 100644
--- a/channels/chan_oss.c
+++ b/channels/chan_oss.c
@@ -51,7 +51,7 @@
 
 #ifdef __linux
 #include <linux/soundcard.h>
-#elif defined(__FreeBSD__) || defined(__CYGWIN__) || defined(__GLIBC__) || defined(__sun)
+#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__CYGWIN__) || defined(__GLIBC__) || defined(__sun)
 #include <sys/soundcard.h>
 #else
 #include <soundcard.h>
diff --git a/configure b/configure
index a7657be94ecfcc3a7b42c631d82e439fb513fded..4671ba7d7e1cb9f03b70e2a3057f57898ff9880a 100755
--- a/configure
+++ b/configure
@@ -4653,7 +4653,7 @@ case "${host_os}" in
      CPPFLAGS=-I/usr/pkg/include
      LDFLAGS=-L/usr/pkg/lib
      ;;
-     freebsd*)
+     dragonfly*|freebsd*)
      ac_default_prefix=/usr/local
      CPPFLAGS=-I/usr/local/include
      LDFLAGS=-L/usr/local/lib
@@ -4742,7 +4742,7 @@ HOST_OS=${host_os}
 PBX_WINARCH=0
 
 case "${host_os}" in
-     freebsd*)
+     dragonfly*|freebsd*)
      OSARCH=FreeBSD
      ;;
      netbsd*)
diff --git a/configure.ac b/configure.ac
index 128b0a0f886f564950ee4bf842ec660eb9915d78..fec27fc702891255614810fcdddb84445a984b21 100644
--- a/configure.ac
+++ b/configure.ac
@@ -67,7 +67,7 @@ case "${host_os}" in
      CPPFLAGS=-I/usr/pkg/include
      LDFLAGS=-L/usr/pkg/lib
      ;;
-     freebsd*)
+     dragonfly*|freebsd*)
      ac_default_prefix=/usr/local
      CPPFLAGS=-I/usr/local/include
      LDFLAGS=-L/usr/local/lib
@@ -152,7 +152,7 @@ AC_SUBST(HOST_OS)
 PBX_WINARCH=0
 
 case "${host_os}" in
-     freebsd*)
+     dragonfly*|freebsd*)
      OSARCH=FreeBSD
      ;;
      netbsd*)
diff --git a/include/asterisk/endian.h b/include/asterisk/endian.h
index fd3eb60f0a5fe00da369e7f5d1484e4dfe31e325..63dd4deeaeeb57e7f935924e9c09d320e12b511b 100644
--- a/include/asterisk/endian.h
+++ b/include/asterisk/endian.h
@@ -31,7 +31,7 @@
 #ifndef __BYTE_ORDER
 #ifdef __linux__
 #include <endian.h>
-#elif defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__)
+#elif defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__APPLE__)
 #if defined(__OpenBSD__)
 #include "asterisk/compat.h"
 #endif
diff --git a/main/asterisk.c b/main/asterisk.c
index 665b4be840a187be14d00eaa8fcb2a5077693cf0..7ff167ef73dffdff6dbea603cc98735b2e82028d 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -170,7 +170,7 @@
 #include <sys/param.h>
 #include <sys/sysctl.h>
 #include <sys/vmmeter.h>
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__DragonFly__)
 #include <vm/vm_param.h>
 #endif
 #if defined(HAVE_SWAPCTL)
diff --git a/main/utils.c b/main/utils.c
index c2e07fccf51a93170047958361c390537807a1f9..6ecd2b82e52ff01febc2eda36fa4ed2fb4165d35 100644
--- a/main/utils.c
+++ b/main/utils.c
@@ -2423,7 +2423,7 @@ char *ast_eid_to_str(char *s, int maxlen, struct ast_eid *eid)
 	return os;
 }
 
-#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__Darwin__)
+#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__Darwin__)
 #include <ifaddrs.h>
 #include <net/if_dl.h>
 
diff --git a/res/res_http_post.c b/res/res_http_post.c
index bf404ced6a884d9a29a8d46856b40c70bd74aeb9..7b0005dc7e5962a5aa3bd6d432637ae402685861 100644
--- a/res/res_http_post.c
+++ b/res/res_http_post.c
@@ -36,7 +36,7 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <gmime/gmime.h>
-#if defined (__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__Darwin__)
+#if defined (__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__Darwin__)
 #include <libgen.h>
 #endif
 
diff --git a/utils/muted.c b/utils/muted.c
index ee1de7f547bf73924733efae074953d0aca3201e..2cdd7e2291790e52eb20f4fee3d5e6eeb8b011a4 100644
--- a/utils/muted.c
+++ b/utils/muted.c
@@ -55,7 +55,7 @@
 #include <sys/types.h>
 #include <pwd.h>
 #include <sys/stat.h>
-#elif defined(__linux__) || defined(__FreeBSD__) || defined(__GLIBC__)
+#elif defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__GLIBC__)
 #include <sys/soundcard.h>
 #endif
 #include <stdio.h>
diff --git a/utils/streamplayer.c b/utils/streamplayer.c
index 809bd64b8323439df92f839cfc61f7a9c709c45c..543efda1817eb08b84816ed3fe66e071be6780f1 100644
--- a/utils/streamplayer.c
+++ b/utils/streamplayer.c
@@ -53,7 +53,7 @@
 #include <unistd.h>
 #include <sys/types.h>
 #include <sys/socket.h>
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__Darwin__) || defined(__CYGWIN__)
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__Darwin__) || defined(__CYGWIN__) || defined(__DragonFly__)
 #include <netinet/in.h>
 #endif
 #include <sys/time.h>