diff --git a/CHANGELOG.md b/CHANGELOG.md
index 80d8e872e..2c167a416 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,9 @@
 - Reduce gdal warning about projection strings (#559)
 - Don't report needless frame information for some single frame files (#558)
 
+### Changes
+- The PIL tilesource priority is slightly higher than other fallback sources (#560)
+
 ### Bug Fixes
 - Fix compositing when using different frame numbers and partial tiles (#557)
 
diff --git a/large_image/constants.py b/large_image/constants.py
index 9df3f9c7f..fa3277669 100644
--- a/large_image/constants.py
+++ b/large_image/constants.py
@@ -23,8 +23,9 @@ class SourcePriority:
     MEDIUM = 4
     LOW = 5
     LOWER = 6
-    FALLBACK = 7
-    MANUAL = 8   # Will never be selected automatically
+    FALLBACK_HIGH = 7
+    FALLBACK = 8
+    MANUAL = 9   # Will never be selected automatically
 
 
 TILE_FORMAT_IMAGE = 'image'
diff --git a/sources/bioformats/large_image_source_bioformats/__init__.py b/sources/bioformats/large_image_source_bioformats/__init__.py
index e4f5b71cb..17c3ae9f6 100644
--- a/sources/bioformats/large_image_source_bioformats/__init__.py
+++ b/sources/bioformats/large_image_source_bioformats/__init__.py
@@ -145,7 +145,7 @@ def __init__(self, path, **kwargs):  # noqa
             raise TileSourceException(
                 'File cannot be opened via bioformats because it has no '
                 'extension to specify the file type (%s).' % largeImagePath)
-        if ext.lower() in ('.jpg', '.jpeg', '.jpe', '.png', '.tif', '.tiff'):
+        if ext.lower() in ('.jpg', '.jpeg', '.jpe', '.png'):
             raise TileSourceException('File will not be opened by bioformats reader')
 
         if not _startJavabridge(self._logger):
diff --git a/sources/pil/large_image_source_pil/__init__.py b/sources/pil/large_image_source_pil/__init__.py
index 85079a5aa..23381eb0a 100644
--- a/sources/pil/large_image_source_pil/__init__.py
+++ b/sources/pil/large_image_source_pil/__init__.py
@@ -24,7 +24,7 @@
 
 from large_image import config
 from large_image.cache_util import LruCacheMetaclass, methodcache, strhash
-from large_image.constants import TILE_FORMAT_PIL
+from large_image.constants import TILE_FORMAT_PIL, SourcePriority
 from large_image.exceptions import TileSourceException
 from large_image.tilesource import FileTileSource
 
@@ -65,8 +65,15 @@ class PILFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
 
     cacheName = 'tilesource'
     name = 'pilfile'
-    # No extensions or mime types are explicitly added for the PIL tile source,
-    # as it should always be a fallback source
+
+    # Although PIL is always a fallback source, prefer it to other fallback
+    # sources
+    extensions = {
+        None: SourcePriority.FALLBACK_HIGH
+    }
+    mimeTypes = {
+        None: SourcePriority.FALLBACK_HIGH
+    }
 
     def __init__(self, path, maxSize=None, **kwargs):
         """