diff --git a/Dockerfile b/Dockerfile
index a75590fcbdab44aec7d70b3eac6348c69bc90c05..38fcf8709968cfab8dd53b29f76f2faa8eb9aef6 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -65,5 +65,16 @@ RUN /usr/local/sbin/weblate-setup-env.sh; /usr/local/sbin/weblate-install.sh
 # Create project and import languages
 RUN /usr/local/sbin/weblate-setup-env.sh; /usr/local/sbin/weblate-setup-project.sh
 
+# Build machine translation db and enable use of tmserver
+RUN /usr/local/sbin/weblate-build-tmdb.sh
+# TODO: Weblate tries to look for languages supported by tmserver by querying
+#       ab unexisting API endpoint (/languages), what causes a 404 error and
+#       prevents the tmserver functionality in Weblate from working properly.
+#       We have to confirm if this is a bug in Weblate, check if this bug is
+#       still present in upstream and report/fix accordingly:
+#       https://github.com/WeblateOrg/weblate/blob/master/weblate/trans/machine/tmserver.py#L54
+COPY weblate/fix-tmserver-api.patch /tmp/ RUN patch -p0 -d
+/usr/local/share/weblate < /tmp/fix-tmserver-api.patch
+
 # Setup server and serve Weblate using Apache
 CMD /usr/local/sbin/weblate-setup-env.sh; /usr/local/sbin/weblate-run-server.sh
diff --git a/docker/usr/local/sbin/weblate-build-tmdb.sh b/docker/usr/local/sbin/weblate-build-tmdb.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5913ebd4a4d556c704f66bfdffbfb0f9c61f2ed1
--- /dev/null
+++ b/docker/usr/local/sbin/weblate-build-tmdb.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+# This script creates a Translation Memory Database from the current Tails
+# cloned repository.
+
+DBFILE=/var/lib/weblate/tails-wiki.tmdb
+REPO=/var/lib/weblate/repositories/vcs/tails/wikisrcindexpo
+
+create_tmdb() {
+  for pofile in $( find ${REPO}/wiki/src -iname "*.po" ); do
+    lang=$( echo ${pofile} | sed -e "s/^.*\.\([a-z][a-z]\)\.po\$/\1/" );
+    build_tmdb -d ${DBFILE} -s en -t ${lang} ${pofile}
+  done
+}
+
+create_tmdb
diff --git a/docker/usr/local/sbin/weblate-run-server.sh b/docker/usr/local/sbin/weblate-run-server.sh
index 400357b1780c004f6fdb9660f267c89106f162c1..2a2c23d4a45346e4626f70c337fdd5cd14fdc142 100755
--- a/docker/usr/local/sbin/weblate-run-server.sh
+++ b/docker/usr/local/sbin/weblate-run-server.sh
@@ -6,6 +6,7 @@
 set -e
 
 weblate_run_server() {
+  tmserver -d /var/lib/weblate/tails-wiki.tmdb -p 8080 &
   /usr/sbin/apache2ctl -D FOREGROUND
 }
 
diff --git a/weblate/fix-tmserver-api.patch b/weblate/fix-tmserver-api.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a39682a3254f2d9349039d30e07cc39876cdf320
--- /dev/null
+++ b/weblate/fix-tmserver-api.patch
@@ -0,0 +1,17 @@
+diff --git weblate/trans/machine/tmserver.py weblate/trans/machine/tmserver.py
+index 86a6deaf1..08e29d98c 100644
+--- weblate/trans/machine/tmserver.py
++++ weblate/trans/machine/tmserver.py
+@@ -73,11 +73,7 @@ class TMServerTranslation(MachineTranslation):
+         '''
+         Checks whether given language combination is supported.
+         '''
+-        if len(self.supported_languages) == 0:
+-            # Fallback for old tmserver which does not export list of
+-            # supported languages
+-            return True
+-        return (source, language) in self.supported_languages
++        return True
+ 
+     def download_translations(self, source, language, text, unit, user):
+         '''
diff --git a/weblate/settings_proposed_2.10.1.py b/weblate/settings_proposed_2.10.1.py
index 23788d12ebe5a151e5611562225394f74337bcc7..0aa4ea1ce939dc94ac19468792f111bc13dacba8 100644
--- a/weblate/settings_proposed_2.10.1.py
+++ b/weblate/settings_proposed_2.10.1.py
@@ -452,7 +452,7 @@ MT_MYMEMORY_KEY = None
 MT_GOOGLE_KEY = None
 
 # tmserver URL
-MT_TMSERVER = 'http://127.0.0.1:8080/'
+MT_TMSERVER = 'http://127.0.0.1:8080/tmserver/'
 
 # Title of site to use
 SITE_TITLE = 'Tails translation platform'