diff --git a/typo3/sysext/extensionmanager/Classes/Controller/ActionController.php b/typo3/sysext/extensionmanager/Classes/Controller/ActionController.php
index a4b87cf79140d5afe4dca2d33d89c50eaa7ddfbe..7b05af0df616f327575e4d4431702f69f9a95449 100644
--- a/typo3/sysext/extensionmanager/Classes/Controller/ActionController.php
+++ b/typo3/sysext/extensionmanager/Classes/Controller/ActionController.php
@@ -15,6 +15,7 @@
 
 namespace TYPO3\CMS\Extensionmanager\Controller;
 
+use TYPO3\CMS\Core\Core\Environment;
 use TYPO3\CMS\Core\Messaging\FlashMessage;
 use TYPO3\CMS\Core\Package\Exception;
 use TYPO3\CMS\Core\Package\Exception\PackageStatesFileNotWritableException;
@@ -138,6 +139,13 @@ class ActionController extends AbstractController
     protected function removeExtensionAction($extension)
     {
         try {
+            if (Environment::isComposerMode()) {
+                throw new ExtensionManagerException(
+                    'The system is set to composer mode. You are not allowed to remove any extension.',
+                    1590314046
+                );
+            }
+
             $this->installUtility->removeExtension($extension);
             $this->addFlashMessage(
                 LocalizationUtility::translate(
diff --git a/typo3/sysext/extensionmanager/Resources/Private/Templates/List/Index.html b/typo3/sysext/extensionmanager/Resources/Private/Templates/List/Index.html
index e4ed5a66537ea0ccef7436b058f04ef88c0f0474..a456122038ba4fc2de945483acb3b3bcd45a4522 100644
--- a/typo3/sysext/extensionmanager/Resources/Private/Templates/List/Index.html
+++ b/typo3/sysext/extensionmanager/Resources/Private/Templates/List/Index.html
@@ -112,7 +112,9 @@
                         <div class="btn-group">
                             <em:processAvailableActions extension="{extension}">
                                 <em:updateScript class="btn btn-default" extensionKey="{extension.key}" />
-                                <em:removeExtension class="btn btn-default" extension="{extension}" />
+                                <f:if condition="!{isComposerMode}">
+                                    <em:removeExtension class="btn btn-default" extension="{extension}" />
+                                </f:if>
                                 <f:link.action action="downloadExtensionZip" controller="Action" arguments="{extension:extension.key}" title="{f:translate(key:'extensionList.downloadzip')}" class="btn btn-default">
                                     <core:icon identifier="actions-system-extension-download" />
                                 </f:link.action>