diff --git a/src/components/sites/exerciseEditorSite/codeTemplatesPanel/dialogs/changeCodeTemplateDialog.tsx b/src/components/sites/exerciseEditorSite/codeTemplatesPanel/dialogs/changeCodeTemplateDialog.tsx
index fee8958d59a448312215891bd0005decf6867eb8..0c9195c21eb24aa8bbe058da99502f09e5a07fc3 100644
--- a/src/components/sites/exerciseEditorSite/codeTemplatesPanel/dialogs/changeCodeTemplateDialog.tsx
+++ b/src/components/sites/exerciseEditorSite/codeTemplatesPanel/dialogs/changeCodeTemplateDialog.tsx
@@ -10,7 +10,7 @@ import {RootState} from "../../../../../state/reducers";
 import FullSiteDialog from '../../../../fullSiteDialog'
 import {
   applyChangCodeTemplateDialog,
-  cancelEditorTestDialog
+  cancelCodeTemplateDialog
 } from "../../../../../state/actions/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateDialogActions";
 import ChangeCodeTemplateView from './changeCodeTemplateView'
 
@@ -38,7 +38,7 @@ const mapStateToProps = (rootState: RootState /*, props: MyProps*/) => {
 
 const mapDispatchToProps = (dispatch: Dispatch) => bindActionCreators({
   //imported reducer funcs here
-  cancelEditorTestDialog,
+  cancelCodeTemplateDialog,
   applyChangCodeTemplateDialog,
 }, dispatch)
 
@@ -65,7 +65,7 @@ class changeCodeTemplateDialog extends React.Component<Props, any> {
             this.props.allCodeTemplates)
         }}
         onCancel={() => {
-          this.props.cancelEditorTestDialog()
+          this.props.cancelCodeTemplateDialog()
         }}
       >
         <ChangeCodeTemplateView/>
@@ -74,4 +74,4 @@ class changeCodeTemplateDialog extends React.Component<Props, any> {
   }
 }
 
-export default connect(mapStateToProps, mapDispatchToProps)(changeCodeTemplateDialog)
\ No newline at end of file
+export default connect(mapStateToProps, mapDispatchToProps)(changeCodeTemplateDialog)
diff --git a/src/constants.ts b/src/constants.ts
index d07e980d9309af18c961ba84113e6464b70805e6..a545112d1247155c68abdff7a77199cb39f1e7a6 100644
--- a/src/constants.ts
+++ b/src/constants.ts
@@ -13,7 +13,7 @@ import Logger from './helpers/logger'
  * y - breaking changes / new features
  * z - fixes, small changes
  */
-export const versionString = '2.10.2'
+export const versionString = '2.10.3'
 
 
 export const supportMail = 'yapex@informatik.uni-halle.de'
diff --git a/src/state/actions/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateDialogActions.ts b/src/state/actions/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateDialogActions.ts
index ccf4435bbb21dbbe763f2caf1502711b13013800..aafcf84bc902906b1c8caa7c579dc2be2e80c8fe 100644
--- a/src/state/actions/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateDialogActions.ts
+++ b/src/state/actions/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateDialogActions.ts
@@ -210,7 +210,7 @@ export function applyChangCodeTemplateDialog(codeTemplate: ExerciseCodeTemplateF
   }
 }
 
-export function cancelEditorTestDialog(): MultiActions {
+export function cancelCodeTemplateDialog(): MultiActions {
   return dispatch => {
 
     dispatch(resetChangeCodeTemplateDialog())
@@ -222,4 +222,4 @@ export function resetChangeCodeTemplateDialog(): ResetAction {
   return {
     type: ActionType.RESET,
   }
-}
\ No newline at end of file
+}
diff --git a/src/state/reducers/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateDialogReducer.ts b/src/state/reducers/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateDialogReducer.ts
index d591c3b7a077e977e96d3e6008b44d39bbf9806f..a3cb90646f3246e9ea840615914da4c1b7efbfaa 100644
--- a/src/state/reducers/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateDialogReducer.ts
+++ b/src/state/reducers/exerciseEditorSite/dialogs/changeCodeTemplateDialog/changeCodeTemplateDialogReducer.ts
@@ -14,6 +14,8 @@ import {isValidDialog} from "../../../../../validation/dialogValidations";
 import {notExhaustive} from "../../../_notExhausiveHelper";
 import {HasFileChangedMap} from "../../../../../helpers/editorHelper";
 import {ActionTypeGlobal, RESET_GlobalAction} from '../../../globalActions'
+import {AceEditorsStorageHelper} from '../../../../../components/codeEditors/aceEditors/aceEditorsStorageHelper'
+import {editExerciseChangeCodeTemplateViewEditorId} from '../../../../../constants'
 
 export type State = {
 
@@ -54,6 +56,9 @@ export type State = {
 
 }
 
+/*
+ * the ace storage is only synced once when we load the exercise!
+ */
 export const initial: () => State = () => {
   return {
     codeTemplate: initialCodeTemplate(),
@@ -155,12 +160,35 @@ export function reducer(state: State = initial(), action: AllActions): State {
 
   switch (action.type) {
 
-    case ActionType.SET_codeTemplate:
+    case ActionType.SET_codeTemplate: {
+
+      const tabs = AceEditorsStorageHelper.getEditor(editExerciseChangeCodeTemplateViewEditorId)
+      if (tabs) {
+        //we want to reset the content but also want to keep the undo stack...
+        //poping undo elements it probably now that good so we set the original content of the code template file
+        //that will push a new undo item but that is ok
+        for (let i = 0; i < tabs.length; i++) {
+          const tabWrapper = tabs[i]
+
+          const codeTemplateFile = action.codeTemplate.templateFiles.find(p => p.id === tabWrapper.tab.id)
+
+          if (!codeTemplateFile) continue
+
+          tabWrapper.tab = {
+            ...tabWrapper.tab,
+            id: codeTemplateFile.id,
+            content: codeTemplateFile.content,
+          }
+          tabWrapper.session.setValue(codeTemplateFile.content)
+        }
+      }
+
       return {
         ...state,
         isValid: isValidDialog(action.codeTemplate, validationRules),
         codeTemplate: action.codeTemplate,
       }
+    }
 
     case ActionType.SET_pLangId:
     case ActionType.SET_mainFileId: