diff --git a/src/documents/templating/filepath.py b/src/documents/templating/filepath.py
index 54ceb30a8..afb43ff4d 100644
--- a/src/documents/templating/filepath.py
+++ b/src/documents/templating/filepath.py
@@ -82,7 +82,7 @@ def get_cf_value(
     name: str,
     default: str | None = None,
 ) -> str | None:
-    if name in custom_field_data:
+    if name in custom_field_data and custom_field_data[name]["value"] is not None:
         return custom_field_data[name]["value"]
     elif default is not None:
         return default
@@ -235,8 +235,10 @@ def get_custom_fields_context(
             field_instance.field.data_type,
             replacement_text="-",
         )
+        if field_instance.value is None:
+            value = None
         # String types need to be sanitized
-        if field_instance.field.data_type in {
+        elif field_instance.field.data_type in {
             CustomField.FieldDataType.MONETARY,
             CustomField.FieldDataType.STRING,
             CustomField.FieldDataType.URL,
diff --git a/src/documents/tests/test_file_handling.py b/src/documents/tests/test_file_handling.py
index 3a0700e1c..fbe945ae0 100644
--- a/src/documents/tests/test_file_handling.py
+++ b/src/documents/tests/test_file_handling.py
@@ -1322,7 +1322,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
             extra_data={"select_options": ["ChoiceOne", "ChoiceTwo"]},
         )
 
-        CustomFieldInstance.objects.create(
+        cfi1 = CustomFieldInstance.objects.create(
             document=doc_a,
             field=cf2,
             value_select=0,
@@ -1351,7 +1351,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
         with override_settings(
             FILENAME_FORMAT="""
                  {% if "Select Field" in custom_fields %}
-                   {{ title }}_{{ custom_fields | get_cf_value('Select Field') }}
+                   {{ title }}_{{ custom_fields | get_cf_value('Select Field', 'Default Value') }}
                  {% else %}
                    {{ title }}
                  {% endif %}
@@ -1362,6 +1362,15 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
                 "Some Title_ChoiceOne.pdf",
             )
 
+            # Check for handling Nones well
+            cfi1.value_select = None
+            cfi1.save()
+
+            self.assertEqual(
+                generate_filename(doc_a),
+                "Some Title_Default Value.pdf",
+            )
+
         cf.name = "Invoice Number"
         cfi.value_int = 4567
         cfi.save()