diff --git a/blenderkit/__init__.py b/blenderkit/__init__.py
index 2f48fa5799b862b0dacee7c5ddf5c222a9a0b489..696a7b9be10ca039375b7609ff6e00bd2f1ebb5f 100644
--- a/blenderkit/__init__.py
+++ b/blenderkit/__init__.py
@@ -56,6 +56,7 @@ if "bpy" in locals():
     ui_bgl = reload(ui_bgl)
     ui_panels = reload(ui_panels)
     upload = reload(upload)
+    upload_bg = reload(upload_bg)
     utils = reload(utils)
 
     bl_ui_label = reload(bl_ui_label)
@@ -90,6 +91,7 @@ else:
     from blenderkit import ui_bgl
     from blenderkit import ui_panels
     from blenderkit import upload
+    from blenderkit import upload_bg
     from blenderkit import utils
 
     from blenderkit.bl_ui_widgets import bl_ui_label
diff --git a/blenderkit/download.py b/blenderkit/download.py
index f6209b5fd3942254ec9c8410f1ff9d585e3e744b..ac83594e677e56e965117dcd4203e288ea9597ce 100644
--- a/blenderkit/download.py
+++ b/blenderkit/download.py
@@ -809,6 +809,7 @@ class Downloader(threading.Thread):
                     t = '%iKB' % fskb
                 else:
                     t = ' %iMB' % fsmb
+
                 tcom.report = f'Downloading {t} {self.resolution}'
 
                 dl = 0
diff --git a/blenderkit/ratings.py b/blenderkit/ratings.py
index fb41ca2db9f2064eec9119b72523b0ad8eb20a2c..6658448451d68e52ee5bfd380a8a68ac72b892f0 100644
--- a/blenderkit/ratings.py
+++ b/blenderkit/ratings.py
@@ -392,9 +392,9 @@ class FastRateMenu(Operator):
 
     @classmethod
     def poll(cls, context):
-        # scene = bpy.context.scene
-        # ui_props = scene.blenderkitUI
-        return True  # ui_props.active_index > -1
+        scene = bpy.context.scene
+        ui_props = scene.blenderkitUI
+        return ui_props.active_index > -1
 
     def draw(self, context):
         layout = self.layout
diff --git a/blenderkit/search.py b/blenderkit/search.py
index 5778973d8c1c2c47ba7bd6f61a990eb3cc494a50..5c3a56f579874ccd43bf0350c99cb5e540104ffd 100644
--- a/blenderkit/search.py
+++ b/blenderkit/search.py
@@ -243,21 +243,37 @@ def parse_result(r):
         r['available_resolutions'] = []
         allthumbs = []
         durl, tname, small_tname = '', '', ''
+
+        if r['assetType'] == 'hdr':
+            tname = paths.extract_filename_from_url(r['thumbnailMiddleUrlNonsquared'])
+        else:
+            tname = paths.extract_filename_from_url(r['thumbnailMiddleUrl'])
+        small_tname = paths.extract_filename_from_url(r['thumbnailSmallUrl'])
+        allthumbs.append(tname)  # TODO just first thumb is used now.
+        # if r['fileType'] == 'thumbnail':
+        #     tname = paths.extract_filename_from_url(f['fileThumbnailLarge'])
+        #     small_tname = paths.extract_filename_from_url(f['fileThumbnail'])
+        #     allthumbs.append(tname)  # TODO just first thumb is used now.
+
         for f in r['files']:
-            if f['fileType'] == 'thumbnail':
-                tname = paths.extract_filename_from_url(f['fileThumbnailLarge'])
-                small_tname = paths.extract_filename_from_url(f['fileThumbnail'])
-                allthumbs.append(tname)  # TODO just first thumb is used now.
-
-            tdict = {}
-            for i, t in enumerate(allthumbs):
-                tdict['thumbnail_%i'] = t
+            # if f['fileType'] == 'thumbnail':
+            #     tname = paths.extract_filename_from_url(f['fileThumbnailLarge'])
+            #     small_tname = paths.extract_filename_from_url(f['fileThumbnail'])
+            #     allthumbs.append(tname)  # TODO just first thumb is used now.
+
+
             if f['fileType'] == 'blend':
                 durl = f['downloadUrl'].split('?')[0]
                 # fname = paths.extract_filename_from_url(f['filePath'])
 
             if f['fileType'].find('resolution') > -1:
                 r['available_resolutions'].append(resolutions.resolutions[f['fileType']])
+
+        #code for more thumbnails
+        # tdict = {}
+        # for i, t in enumerate(allthumbs):
+        #     tdict['thumbnail_%i'] = t
+
         r['max_resolution'] = 0
         if r['available_resolutions']:  # should check only for non-empty sequences
             r['max_resolution'] = max(r['available_resolutions'])
@@ -311,7 +327,7 @@ def parse_result(r):
         if asset_type == 'material':
             asset_data['texture_size_meters'] = params.get('textureSizeMeters', 1.0)
 
-        asset_data.update(tdict)
+        # asset_data.update(tdict)
 
         au = scene.get('assets used', {})
         if au == {}:
@@ -1019,25 +1035,44 @@ class Searcher(threading.Thread):
         thumb_full_filepaths = []
         # END OF PARSING
         for d in rdata.get('results', []):
+            thumb_small_urls.append(d["thumbnailSmallUrl"])
+            imgname = paths.extract_filename_from_url(d['thumbnailSmallUrl'])
+            imgpath = os.path.join(self.tempdir, imgname)
+            thumb_small_filepaths.append(imgpath)
 
-            for f in d['files']:
-                # TODO move validation of published assets to server, too manmy checks here.
-                if f['fileType'] == 'thumbnail' and f['fileThumbnail'] != None and f['fileThumbnailLarge'] != None:
-                    if f['fileThumbnail'] == None:
-                        f['fileThumbnail'] = 'NONE'
-                    if f['fileThumbnailLarge'] == None:
-                        f['fileThumbnailLarge'] = 'NONE'
 
-                    thumb_small_urls.append(f['fileThumbnail'])
-                    thumb_full_urls.append(f['fileThumbnailLarge'])
 
-                    imgname = paths.extract_filename_from_url(f['fileThumbnail'])
-                    imgpath = os.path.join(self.tempdir, imgname)
-                    thumb_small_filepaths.append(imgpath)
+            if d["assetType"] == 'hdr':
+                larege_thumb_url = d['thumbnailMiddleUrlNonsquared']
 
-                    imgname = paths.extract_filename_from_url(f['fileThumbnailLarge'])
-                    imgpath = os.path.join(self.tempdir, imgname)
-                    thumb_full_filepaths.append(imgpath)
+            else:
+                larege_thumb_url = d['thumbnailMiddleUrl']
+
+            thumb_full_urls.append(larege_thumb_url)
+            imgname = paths.extract_filename_from_url(larege_thumb_url)
+            imgpath = os.path.join(self.tempdir, imgname)
+            thumb_full_filepaths.append(imgpath)
+
+
+
+            # for f in d['files']:
+            #     # TODO move validation of published assets to server, too manmy checks here.
+            #     if f['fileType'] == 'thumbnail' and f['fileThumbnail'] != None and f['fileThumbnailLarge'] != None:
+            #         if f['fileThumbnail'] == None:
+            #             f['fileThumbnail'] = 'NONE'
+            #         if f['fileThumbnailLarge'] == None:
+            #             f['fileThumbnailLarge'] = 'NONE'
+            #
+            #         thumb_small_urls.append(f['fileThumbnail'])
+            #         thumb_full_urls.append(f['fileThumbnailLarge'])
+            #
+            #         imgname = paths.extract_filename_from_url(f['fileThumbnail'])
+            #         imgpath = os.path.join(self.tempdir, imgname)
+            #         thumb_small_filepaths.append(imgpath)
+            #
+            #         imgname = paths.extract_filename_from_url(f['fileThumbnailLarge'])
+            #         imgpath = os.path.join(self.tempdir, imgname)
+            #         thumb_full_filepaths.append(imgpath)
 
         sml_thbs = zip(thumb_small_filepaths, thumb_small_urls)
         full_thbs = zip(thumb_full_filepaths, thumb_full_urls)
diff --git a/blenderkit/ui.py b/blenderkit/ui.py
index f39e233bf5eaf17f3da843ec40283ea07b7bf2bb..d15aba88dc6b45e71c2f69b0b9bbd5a680409c46 100644
--- a/blenderkit/ui.py
+++ b/blenderkit/ui.py
@@ -710,6 +710,8 @@ def get_large_thumbnail_image(asset_data):
     iname = utils.previmg_name(ui_props.active_index, fullsize=True)
     directory = paths.get_temp_dir('%s_search' % mappingdict[ui_props.asset_type])
     tpath = os.path.join(directory, asset_data['thumbnail'])
+    if asset_data['assetType'] == 'hdr':
+        tpath = os.path.join(directory, asset_data['thumbnail'])
     if not asset_data['thumbnail']:
         tpath = paths.get_addon_thumbnail_path('thumbnail_not_available.jpg')
 
diff --git a/blenderkit/upload.py b/blenderkit/upload.py
index 4f9ee1ab18dbc24228e61184b0925874f447b23b..b0812efbc32e266f2eb00480dfe6f97dd67d1c99 100644
--- a/blenderkit/upload.py
+++ b/blenderkit/upload.py
@@ -569,7 +569,8 @@ def update_free_full(self, context):
 
 
 def can_edit_asset(active_index=-1, asset_data=None):
-    if active_index == -1 and not asset_data:
+    print(active_index, asset_data)
+    if active_index < 0 and not asset_data:
         return False
     profile = bpy.context.window_manager.get('bkit profile')
     if profile is None: