diff --git a/io_scene_fbx/export_fbx_bin.py b/io_scene_fbx/export_fbx_bin.py
index 1f95eace557b4b24aeddc00ad15935a6ca6d9af1..6f6005cbe7e62fc0e3829430b3102b6f2f838f1c 100644
--- a/io_scene_fbx/export_fbx_bin.py
+++ b/io_scene_fbx/export_fbx_bin.py
@@ -534,7 +534,17 @@ def fbx_data_element_custom_properties(props, bid):
     """
     Store custom properties of blender ID bid (any mapping-like object, in fact) into FBX properties props.
     """
-    for k, v in bid.items():
+    items = bid.items()
+
+    if not items:
+        return
+
+    rna_properties = {prop.identifier for prop in bid.bl_rna.properties if prop.is_runtime}
+
+    for k, v in items:
+        if k == '_RNA_UI' or k in rna_properties:
+            continue
+
         list_val = getattr(v, "to_list", lambda: None)()
 
         if isinstance(v, str):
@@ -2304,7 +2314,7 @@ def fbx_data_from_scene(scene, depsgraph, settings):
     # For now, do not use world textures, don't think they can be linked to anything FBX wise...
     for ma in data_materials.keys():
         # Note: with nodal shaders, we'll could be generating much more textures, but that's kind of unavoidable,
-        #       given that textures actually do not exist anymore in material context in Blender...
+        #       given that textures actually do not exist anymore in material context in Blender...
         ma_wrap = node_shader_utils.PrincipledBSDFWrapper(ma, is_readonly=True)
         for sock_name, fbx_name in PRINCIPLED_TEXTURE_SOCKETS_TO_FBX:
             tex = getattr(ma_wrap, sock_name)