diff --git a/Dockerfile b/Dockerfile
index c911aae..14f6769 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -21,13 +21,30 @@
 # Dockerfile for guacamole-server
 #
 
+# The Debian image that should be used as the basis for the guacd image
+ARG DEBIAN_BASE_IMAGE=buster-slim
 
 # Use Debian as base for the build
-ARG DEBIAN_VERSION=stable
-FROM debian:${DEBIAN_VERSION} AS builder
+FROM debian:${DEBIAN_BASE_IMAGE} AS builder
 
+#
+# The Debian repository that should be preferred for dependencies (this will be
+# added to /etc/apt/sources.list if not already present)
+#
+# NOTE: Due to limitations of the Docker image build process, this value is
+# duplicated in an ARG in the second stage of the build.
+#
+ARG DEBIAN_RELEASE=buster-backports
+
+# Add repository for specified Debian release if not already present in
+# sources.list
+RUN grep " ${DEBIAN_RELEASE} " /etc/apt/sources.list || echo >> /etc/apt/sources.list \
+    "deb http://deb.debian.org/debian ${DEBIAN_RELEASE} main contrib non-free"
+
+#
 # Base directory for installed build artifacts.
-# Due to limitations of the Docker image build process, this value is
+#
+# NOTE: Due to limitations of the Docker image build process, this value is
 # duplicated in an ARG in the second stage of the build.
 #
 ARG PREFIX_DIR=/usr/local/guacamole
@@ -53,9 +70,12 @@
         libwebp-dev                   \
         make"
 
+# Do not require interaction during build
+ARG DEBIAN_FRONTEND=noninteractive
+
 # Bring build environment up to date and install build dependencies
-RUN apt-get update                         && \
-    apt-get install -y $BUILD_DEPENDENCIES && \
+RUN apt-get update                                              && \
+    apt-get install -t ${DEBIAN_RELEASE} -y $BUILD_DEPENDENCIES && \
     rm -rf /var/lib/apt/lists/*
 
 # Add configuration scripts
@@ -68,20 +88,36 @@
 RUN ${PREFIX_DIR}/bin/build-guacd.sh "$BUILD_DIR" "$PREFIX_DIR"
 
 # Record the packages of all runtime library dependencies
-RUN ${PREFIX_DIR}/bin/list-dependencies.sh    \
-        ${PREFIX_DIR}/sbin/guacd              \
-        ${PREFIX_DIR}/lib/libguac-client-*.so \
-        ${PREFIX_DIR}/lib/freerdp2/guac*.so   \
+RUN ${PREFIX_DIR}/bin/list-dependencies.sh     \
+        ${PREFIX_DIR}/sbin/guacd               \
+        ${PREFIX_DIR}/lib/libguac-client-*.so  \
+        ${PREFIX_DIR}/lib/freerdp2/*guac*.so   \
         > ${PREFIX_DIR}/DEPENDENCIES
 
 # Use same Debian as the base for the runtime image
-FROM debian:${DEBIAN_VERSION}-slim
+FROM debian:${DEBIAN_BASE_IMAGE}
 
-# Base directory for installed build artifacts.
-# Due to limitations of the Docker image build process, this value is
-# duplicated in an ARG in the first stage of the build. See also the
+#
+# The Debian repository that should be preferred for dependencies (this will be
+# added to /etc/apt/sources.list if not already present)
+#
+# NOTE: Due to limitations of the Docker image build process, this value is
+# duplicated in an ARG in the first stage of the build.
+#
+ARG DEBIAN_RELEASE=buster-backports
+
+# Add repository for specified Debian release if not already present in
+# sources.list
+RUN grep " ${DEBIAN_RELEASE} " /etc/apt/sources.list || echo >> /etc/apt/sources.list \
+    "deb http://deb.debian.org/debian ${DEBIAN_RELEASE} main contrib non-free"
+
+#
+# Base directory for installed build artifacts. See also the
 # CMD directive at the end of this build stage.
 #
+# NOTE: Due to limitations of the Docker image build process, this value is
+# duplicated in an ARG in the first stage of the build.
+#
 ARG PREFIX_DIR=/usr/local/guacamole
 
 # Runtime environment
@@ -97,13 +133,16 @@
         fonts-dejavu                  \
         xfonts-terminus"
 
+# Do not require interaction during build
+ARG DEBIAN_FRONTEND=noninteractive
+
 # Copy build artifacts into this stage
 COPY --from=builder ${PREFIX_DIR} ${PREFIX_DIR}
 
 # Bring runtime environment up to date and install runtime dependencies
-RUN apt-get update                                                                  && \
-    apt-get install -y --no-install-recommends $RUNTIME_DEPENDENCIES                && \
-    apt-get install -y --no-install-recommends $(cat "${PREFIX_DIR}"/DEPENDENCIES)  && \
+RUN apt-get update                                                                                       && \
+    apt-get install -t ${DEBIAN_RELEASE} -y --no-install-recommends $RUNTIME_DEPENDENCIES                && \
+    apt-get install -t ${DEBIAN_RELEASE} -y --no-install-recommends $(cat "${PREFIX_DIR}"/DEPENDENCIES)  && \
     rm -rf /var/lib/apt/lists/*
 
 # Link FreeRDP plugins into proper path
diff --git a/configure.ac b/configure.ac
index ffd0e23..e74865b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -655,7 +655,13 @@
 # between releases, as the change in behavior may not (yet) be associated with
 # a corresponding change in version number and may not have any detectable
 # effect on the FreeRDP API
-if test "x${have_freerdp2}" = "xyes"
+
+AC_ARG_ENABLE(allow_freerdp_snapshots,
+              [AS_HELP_STRING([--enable-allow-freerdp-snapshots],
+                              [allow building against unknown development snapshots of FreeRDP])
+              ],allow_freerdp_snapshots=yes)
+
+if test "x${have_freerdp2}" = "xyes" -a "x${allow_freerdp_snapshots}" != "xyes"
 then
 
     AC_MSG_CHECKING([whether FreeRDP appears to be a development version])
@@ -667,7 +673,7 @@
     ],
     [AC_MSG_RESULT([no])],
     [AC_MSG_RESULT([yes])]
-    [AC_MSG_WARN([
+    [AC_MSG_ERROR([
   --------------------------------------------
    You are building against a development version of FreeRDP. Non-release
    versions of FreeRDP may have differences in behavior that are impossible to
@@ -675,6 +681,9 @@
    behavior.
 
    *** PLEASE USE A RELEASED VERSION OF FREERDP IF POSSIBLE ***
+
+   If you are ABSOLUTELY CERTAIN that building against this version of FreeRDP
+   is OK, rerun configure with the --enable-allow-freerdp-snapshots
   --------------------------------------------])])
 
 fi
