diff --git a/openecomp-ui/src/nfvo-components/panel/NavigationSideBar.jsx b/openecomp-ui/src/nfvo-components/panel/NavigationSideBar.jsx
index 02552fc..2eda7e6 100644
--- a/openecomp-ui/src/nfvo-components/panel/NavigationSideBar.jsx
+++ b/openecomp-ui/src/nfvo-components/panel/NavigationSideBar.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2018 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,7 +23,8 @@
 		activeItemId: PropTypes.string.isRequired,
 		onSelect: PropTypes.func,
 		onToggle: PropTypes.func,
-		groups: PropTypes.array
+		groups: PropTypes.array,
+		disabled: PropTypes.bool
 	};
 
 	constructor(props) {
@@ -35,10 +36,10 @@
 	}
 
 	render() {
-		let {groups, activeItemId} = this.props;
+		let {groups, activeItemId, disabled = false} = this.props;
 
 		return (
-			<div className='navigation-side-content'>
+			<div className={`navigation-side-content ${disabled ? 'disabled' : ''}`}>
 				{groups.map(group => (
 					<NavigationMenu menu={group} activeItemId={activeItemId} onNavigationItemClick={this.handleItemClicked} key={'menu_' + group.id} />
 				))}
diff --git a/openecomp-ui/src/nfvo-components/panel/versionController/VersionController.jsx b/openecomp-ui/src/nfvo-components/panel/versionController/VersionController.jsx
index 5273785..fdc86d4 100644
--- a/openecomp-ui/src/nfvo-components/panel/versionController/VersionController.jsx
+++ b/openecomp-ui/src/nfvo-components/panel/versionController/VersionController.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2018 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -43,10 +43,11 @@
 
 	render() {
 		let {version = {},  viewableVersions = [], onVersionSwitching, onMoreVersionsClick, callVCAction, onSave, isReadOnlyMode, itemPermission,
-				isFormDataValid, onClose, onManagePermissions, permissions = {},  userInfo, usersList, itemName, onOpenCommentCommitModal, onOpenRevisionsModal, isManual} = this.props;
+				isFormDataValid, onClose, onManagePermissions, permissions = {},  userInfo, usersList, itemName,
+				 onOpenCommentCommitModal, onOpenRevisionsModal, isManual, candidateInProcess} = this.props;
 		return (
 			<div className='version-controller-bar'>
-				<div className='vc-container'>
+				<div className={`vc-container ${candidateInProcess ? 'disabled' : ''}`}>
 					<div className='version-status-container'>
 						<VersionSelector
 							viewableVersions={viewableVersions}
@@ -58,7 +59,7 @@
 						<ActionButtons onSubmit={callVCAction ? () => this.submit(callVCAction, version) : undefined}
 							onRevert={callVCAction ? () => this.revert(callVCAction, version) : undefined}
 							onOpenRevisionsModal={onOpenRevisionsModal}
-							onSave={onSave ? () => onSave() : undefined}
+							onSave={onSave ? () => onSave() : undefined}							
 							permissions={permissions}
 							userInfo={userInfo}
 							onManagePermissions={onManagePermissions}
@@ -70,7 +71,7 @@
 							onCommit={callVCAction ? (comment) => this.commit(callVCAction, version, comment) : undefined}
 							isFormDataValid={isFormDataValid}
 							itemPermissions={itemPermission}
-							isReadOnlyMode={isReadOnlyMode}
+							isReadOnlyMode={isReadOnlyMode || candidateInProcess}
 							isManual={isManual} />
 						<div className='vc-separator'></div>
 						<NotificationsView />
