diff --git a/src/boot/after_store.js b/src/boot/after_store.js
index 9c1f007bd56a85fee466bc30c6187ecb9ec3b8d2..395d483449048940bfd73b96319122c8a3ce3782 100644
--- a/src/boot/after_store.js
+++ b/src/boot/after_store.js
@@ -259,6 +259,7 @@ const getNodeInfo = async ({ store }) => {
       store.dispatch('setInstanceOption', { name: 'editingAvailable', value: features.includes('editing') })
       store.dispatch('setInstanceOption', { name: 'pollLimits', value: metadata.pollLimits })
       store.dispatch('setInstanceOption', { name: 'mailerEnabled', value: metadata.mailerEnabled })
+      store.dispatch('setInstanceOption', { name: 'quotingAvailable', value: features.includes('quote_posting') })
 
       const uploadLimits = metadata.uploadLimits
       store.dispatch('setInstanceOption', { name: 'uploadlimit', value: parseInt(uploadLimits.general) })
diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js
index 65066d542a2b2fafeb3f3e1fe116322fce7a2f76..97d3cb2299d22d1dfd77fea008408d79468d09f8 100644
--- a/src/components/post_status_form/post_status_form.js
+++ b/src/components/post_status_form/post_status_form.js
@@ -268,6 +268,10 @@ const PostStatusForm = {
       return typeof this.statusId !== 'undefined' && this.statusId.trim() !== ''
     },
     quotable () {
+      if (!this.$store.state.instance.quotingAvailable) {
+        return false
+      }
+
       if (!this.replyTo) {
         return false
       }
diff --git a/src/modules/instance.js b/src/modules/instance.js
index bb0292da0bdef1396abf2f24392f65ad4bc50ace..1ee64552e69faa8ad6cc2c3f567763ac186a0981 100644
--- a/src/modules/instance.js
+++ b/src/modules/instance.js
@@ -128,6 +128,7 @@ const defaultState = {
   mediaProxyAvailable: false,
   suggestionsEnabled: false,
   suggestionsWeb: '',
+  quotingAvailable: false,
 
   // Html stuff
   instanceSpecificPanelContent: '',