diff --git a/CHANGES.txt b/CHANGES.txt
index 5161e65..819887a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,8 @@
 Release 1.17 - ???
 
+  * Load external custom-mimetypes.xml from system property 
+    tika.custom-mimetypes (TIKA-2460). 
+  
   * Extract number of tiffs in a multi-page tiff (TIKA-2451).
 
   * Fix detection of emails extracted from mbox (TIKA-2456).
diff --git a/tika-core/src/main/java/org/apache/tika/mime/MimeTypesFactory.java b/tika-core/src/main/java/org/apache/tika/mime/MimeTypesFactory.java
index ac434fd..966c37a 100644
--- a/tika-core/src/main/java/org/apache/tika/mime/MimeTypesFactory.java
+++ b/tika-core/src/main/java/org/apache/tika/mime/MimeTypesFactory.java
@@ -16,6 +16,7 @@
  */
 package org.apache.tika.mime;
 
+import java.io.File;
 import java.io.InputStream;
 import java.io.IOException;
 import java.net.URL;
@@ -29,6 +30,12 @@
  * Creates instances of MimeTypes.
  */
 public class MimeTypesFactory {
+    
+    /**
+     * System property to set a path to an external custom-mimetypes.xml
+     * to be loaded.
+     */
+    public static final String CUSTOM_MIMES_SYS_PROP = "tika.custom-mimetypes";
 
     /**
      * Creates an empty instance; same as calling new MimeTypes().
@@ -139,6 +146,8 @@
      *  override mimetypes found will loaded afterwards.
      * The file paths will be interpreted by the specified class  
      *  loader in getResource().
+     *  It will also load custom mimetypes from the system property
+     *  {@link #CUSTOM_MIMES_SYS_PROP}
      * 
      * @param coreFilePath The main MimeTypes file to load
      * @param extensionFilePath The name of extension MimeType files to load afterwards
@@ -167,6 +176,12 @@
         urls.add(coreURL);
         urls.addAll(extensionURLs);
         
+        String customMimesPath = System.getProperty(CUSTOM_MIMES_SYS_PROP);
+        if(customMimesPath != null){
+            URL externalURL = new File(customMimesPath).toURI().toURL();
+            urls.add(externalURL);
+        }
+        
         return create( urls.toArray(new URL[urls.size()]) );
     }
 }
diff --git a/tika-core/src/test/java/org/apache/tika/mime/MimeTypesReaderTest.java b/tika-core/src/test/java/org/apache/tika/mime/MimeTypesReaderTest.java
index bddaf1a..8782167 100644
--- a/tika-core/src/test/java/org/apache/tika/mime/MimeTypesReaderTest.java
+++ b/tika-core/src/test/java/org/apache/tika/mime/MimeTypesReaderTest.java
@@ -233,6 +233,22 @@
        }
     }
     
+    private class CustomClassLoader extends ClassLoader{
+    }
+    
+    /**
+     * TIKA-2460 Test loading of custom-mimetypes.xml from sys prop.
+     */
+    @Test
+    public void testExternalMimeTypes() throws Exception {
+        System.setProperty(MimeTypesFactory.CUSTOM_MIMES_SYS_PROP, 
+                "src/test/resources/org/apache/tika/mime/external-mimetypes.xml");
+        MimeTypes mimeTypes = MimeTypes.getDefaultMimeTypes(new CustomClassLoader());
+        Metadata m = new Metadata();
+        m.add(Metadata.RESOURCE_NAME_KEY, "test.external.mime.type");
+        assertEquals("external/mime-type", mimeTypes.detect(null, m).toString());
+    }
+    
     @Test
     public void testGetExtensionForPowerPoint() throws Exception {
         MimeType mt = this.mimeTypes.forName("application/vnd.ms-powerpoint");
diff --git a/tika-core/src/test/resources/org/apache/tika/mime/external-mimetypes.xml b/tika-core/src/test/resources/org/apache/tika/mime/external-mimetypes.xml
new file mode 100644
index 0000000..362b112
--- /dev/null
+++ b/tika-core/src/test/resources/org/apache/tika/mime/external-mimetypes.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<mime-info>
+  <mime-type type="external/mime-type">
+     <glob pattern="*.external.mime.type" />
+  </mime-type>
+</mime-info>