diff --git a/openecomp-ui/resources/scss/modules/_versionsPage.scss b/openecomp-ui/resources/scss/modules/_versionsPage.scss
index b5ace35..d99532c 100644
--- a/openecomp-ui/resources/scss/modules/_versionsPage.scss
+++ b/openecomp-ui/resources/scss/modules/_versionsPage.scss
@@ -186,6 +186,12 @@
 			.tree-view {
 				background-color: $white;
 				flex: 1;
+
+				.node:not(.selectedNode):hover {
+					.outer-circle, .inner-circle {
+						transform: scale(1.1);
+					}
+				}
 			}
 		}
 	}
@@ -229,8 +235,8 @@
 			&.selected {
 				box-shadow: 0 1px 4px 0 rgba(24, 24, 24, 0.06), inset 5px 0 0 0 $blue;
 				background-color: $row-active-color;
+
 				&:hover {
-					background-color: $row-hover-color;
 					box-shadow: 0 1px 4px 0 rgba(24, 24, 24, 0.06), inset 5px 0 0 0 lighten($blue, 35%);
 				}
 			}
@@ -278,6 +284,7 @@
 				&.item-description > .description-text {
 					margin-right: 10px;
 					@include ellipsis($max-width: 300px);
+					width: initial;
 				}
 
 				&.item-actions {
@@ -315,7 +322,7 @@
 
 			/* To keep ellipsis hider's background the same color as row background */
 			&:not(.selected):hover .item-description > .description-text:after {
-				background: $row-hover-color
+				background: $row-hover-color;
 			}
 
 			&:hover:active .item-description > .description-text:after {
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/details/SoftwareProductDetails.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/details/SoftwareProductDetails.js
index 8a3279a..eb1927f 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/details/SoftwareProductDetails.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/details/SoftwareProductDetails.js
@@ -47,6 +47,9 @@
     licenseAgreementList = licensingVersion
         ? licenseAgreement.licenseAgreementList
         : [];
+    const sortedLicensingVersionsList = [...licensingVersionsList].sort(
+        (a, b) => Number(a.name) > Number(b.name)
+    );
     if (licensingVersion && licensingData && licensingData.licenseAgreement) {
         let selectedLicenseAgreement = licenseAgreementList.find(
             la => la.id === licensingData.licenseAgreement
@@ -82,7 +85,7 @@
         currentSoftwareProduct,
         softwareProductCategories,
         licenseAgreementList,
-        licensingVersionsList,
+        licensingVersionsList: sortedLicensingVersionsList,
         featureGroupsList: filteredFeatureGroupsList,
         finalizedLicenseModelList,
         qdata,
diff --git a/openecomp-ui/src/sdc-app/onboarding/versionsPage/VersionsPage.js b/openecomp-ui/src/sdc-app/onboarding/versionsPage/VersionsPage.js
index 457d096..a3c1a8a 100644
--- a/openecomp-ui/src/sdc-app/onboarding/versionsPage/VersionsPage.js
+++ b/openecomp-ui/src/sdc-app/onboarding/versionsPage/VersionsPage.js
@@ -33,15 +33,7 @@
     let { versions = [], selectedVersion } = versionsList;
     let { owner, contributors, viewers } = permissions;
 
-    // sorting the version list
-    versions.sort((a, b) => {
-        let statusCompare = b.status.localeCompare(a.status);
-        if (statusCompare === 0) {
-            return b.modificationTime - a.modificationTime;
-        } else {
-            return statusCompare;
-        }
-    });
+    versions.sort((a, b) => Number(a.name) > Number(b.name));
     const curentSoftwareProduct = softwareProductList.find(
         item => item.id === itemId
     );
diff --git a/openecomp-ui/src/sdc-app/onboarding/versionsPage/components/VersionList.jsx b/openecomp-ui/src/sdc-app/onboarding/versionsPage/components/VersionList.jsx
index d74805e..f9d6d57 100644
--- a/openecomp-ui/src/sdc-app/onboarding/versionsPage/components/VersionList.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/versionsPage/components/VersionList.jsx
@@ -79,11 +79,15 @@
             className={`version-item-row ${
                 isHeader ? 'header-row' : 'clickable'
             } ${isSelected ? 'selected' : ''}`}
-            onClick={e => {
-                e.stopPropagation();
-                onSelectVersion();
-                onNavigateToVersion();
-            }}>
+            onClick={
+                isHeader
+                    ? null
+                    : e => {
+                          e.stopPropagation();
+                          onSelectVersion();
+                          onNavigateToVersion();
+                      }
+            }>
             <div
                 className={`version-item-field ${
                     isHeader ? 'header-field item-version' : 'item-version'
