diff --git a/src/lib/project-fetcher-hoc.jsx b/src/lib/project-fetcher-hoc.jsx
index 1879d69e582468e3af8ffa5377f7a80c1e5e544a..9f82fb3d7b878a9f9c430ccf67b5f0d080148a92 100644
--- a/src/lib/project-fetcher-hoc.jsx
+++ b/src/lib/project-fetcher-hoc.jsx
@@ -8,12 +8,18 @@ import {setProjectUnchanged} from '../reducers/project-changed';
 import {
     LoadingStates,
     defaultProjectId,
+    getIsCreatingNew,
     getIsFetchingWithId,
+    getIsLoading,
     getIsShowingProject,
     onFetchedProjectData,
     projectError,
     setProjectId
 } from '../reducers/project-state';
+import {
+    activateTab,
+    BLOCKS_TAB_INDEX
+} from '../reducers/editor-tab';
 
 import analytics from './analytics';
 import log from './log';
@@ -59,6 +65,9 @@ const ProjectFetcherHOC = function (WrappedComponent) {
             if (this.props.isShowingProject && !prevProps.isShowingProject) {
                 this.props.onProjectLoaded();
             }
+            if (this.props.isShowingProject && (prevProps.isLoadingProject || prevProps.isCreatingNew)) {
+                this.props.onActivateTab(BLOCKS_TAB_INDEX);
+            }
         }
         fetchProject (projectId, loadingState) {
             return storage
@@ -89,7 +98,9 @@ const ProjectFetcherHOC = function (WrappedComponent) {
                 /* eslint-disable no-unused-vars */
                 assetHost,
                 intl,
+                isLoadingProject: isLoadingProjectProp,
                 loadingState,
+                onActivateTab,
                 onError: onErrorProp,
                 onFetchedProjectData: onFetchedProjectDataProp,
                 projectHost,
@@ -113,7 +124,9 @@ const ProjectFetcherHOC = function (WrappedComponent) {
         canSave: PropTypes.bool,
         intl: intlShape.isRequired,
         isFetchingWithId: PropTypes.bool,
+        isLoadingProject: PropTypes.bool,
         loadingState: PropTypes.oneOf(LoadingStates),
+        onActivateTab: PropTypes.func,
         onError: PropTypes.func,
         onFetchedProjectData: PropTypes.func,
         projectHost: PropTypes.string,
@@ -127,12 +140,15 @@ const ProjectFetcherHOC = function (WrappedComponent) {
     };
 
     const mapStateToProps = state => ({
+        isCreatingNew: getIsCreatingNew(state.scratchGui.projectState.loadingState),
         isFetchingWithId: getIsFetchingWithId(state.scratchGui.projectState.loadingState),
+        isLoadingProject: getIsLoading(state.scratchGui.projectState.loadingState),
         isShowingProject: getIsShowingProject(state.scratchGui.projectState.loadingState),
         loadingState: state.scratchGui.projectState.loadingState,
         reduxProjectId: state.scratchGui.projectState.projectId
     });
     const mapDispatchToProps = dispatch => ({
+        onActivateTab: tab => dispatch(activateTab(tab)),
         onError: error => dispatch(projectError(error)),
         onFetchedProjectData: (projectData, loadingState) =>
             dispatch(onFetchedProjectData(projectData, loadingState)),
diff --git a/src/reducers/project-state.js b/src/reducers/project-state.js
index edec52a537c0f9fde8d9cbb07fbeffb281038227..a587844243a80dbac98e152b18989c614c6056c8 100644
--- a/src/reducers/project-state.js
+++ b/src/reducers/project-state.js
@@ -58,6 +58,11 @@ const getIsLoadingWithId = loadingState => (
     loadingState === LoadingState.LOADING_VM_WITH_ID ||
     loadingState === LoadingState.LOADING_VM_NEW_DEFAULT
 );
+const getIsLoading = loadingState => (
+    loadingState === LoadingState.LOADING_VM_FILE_UPLOAD ||
+    loadingState === LoadingState.LOADING_VM_WITH_ID ||
+    loadingState === LoadingState.LOADING_VM_NEW_DEFAULT
+);
 const getIsCreatingNew = loadingState => (
     loadingState === LoadingState.CREATING_NEW
 );
@@ -488,6 +493,7 @@ export {
     getIsError,
     getIsFetchingWithId,
     getIsFetchingWithoutId,
+    getIsLoading,
     getIsLoadingWithId,
     getIsManualUpdating,
     getIsRemixing,