diff --git a/src/main/java/org/olat/course/assessment/ui/mode/AssessmentModeEditController.java b/src/main/java/org/olat/course/assessment/ui/mode/AssessmentModeEditController.java
index 7b32fbf05bd0717b40dac31a2608ec159d5e6421..4fd005abfd319bcebc40c6c50cfd0f31463d9d83 100644
--- a/src/main/java/org/olat/course/assessment/ui/mode/AssessmentModeEditController.java
+++ b/src/main/java/org/olat/course/assessment/ui/mode/AssessmentModeEditController.java
@@ -360,7 +360,8 @@ public class AssessmentModeEditController extends FormBasicController {
 		ipsEl.addActionListener(FormEvent.ONCHANGE);
 		ipsEl.setEnabled(status != Status.end);
 		String ipList = assessmentMode.getIpList();
-		ipListEl = uifactory.addTextAreaElement("mode.ips.list", "mode.ips.list", 4096, 4, 60, false, false, ipList, formLayout);
+		ipListEl = uifactory.addTextAreaElement("mode.ips.list", "mode.ips.list", 16000, 4, 60, false, false, ipList, formLayout);
+		ipListEl.setMaxLength(16000);
 		ipListEl.setVisible(assessmentMode.isRestrictAccessIps());
 		ipListEl.setEnabled(status != Status.end);
 		
@@ -369,7 +370,8 @@ public class AssessmentModeEditController extends FormBasicController {
 		safeExamBrowserEl.addActionListener(FormEvent.ONCHANGE);
 		safeExamBrowserEl.setEnabled(status != Status.end);
 		String key = assessmentMode.getSafeExamBrowserKey();
-		safeExamBrowserKeyEl = uifactory.addTextAreaElement("safeexamkey", "mode.safeexambrowser.key", 4096, 6, 60, false, false, key, formLayout);
+		safeExamBrowserKeyEl = uifactory.addTextAreaElement("safeexamkey", "mode.safeexambrowser.key", 16000, 6, 60, false, false, key, formLayout);
+		safeExamBrowserKeyEl.setMaxLength(16000);
 		safeExamBrowserKeyEl.setVisible(assessmentMode.isSafeExamBrowser());
 		safeExamBrowserKeyEl.setEnabled(status != Status.end);
 		String hint = assessmentMode.getSafeExamBrowserHint();
@@ -547,6 +549,9 @@ public class AssessmentModeEditController extends FormBasicController {
 			if(!StringHelper.containsNonWhitespace(value)) {
 				safeExamBrowserKeyEl.setErrorKey("form.legende.mandatory", null);
 				allOk &= false;
+			} else if(value.length() > safeExamBrowserKeyEl.getMaxLength()) {
+				safeExamBrowserKeyEl.setErrorKey("form.error.toolong", new String[] { Integer.toString(safeExamBrowserKeyEl.getMaxLength()) } );
+				allOk &= false;
 			}
 		}
 		
@@ -556,6 +561,9 @@ public class AssessmentModeEditController extends FormBasicController {
 			if(!StringHelper.containsNonWhitespace(value)) {
 				ipListEl.setErrorKey("form.legende.mandatory", null);
 				allOk &= false;
+			} else if(value.length() > ipListEl.getMaxLength()) {
+				ipListEl.setErrorKey("form.error.toolong", new String[] { Integer.toString(ipListEl.getMaxLength()) } );
+				allOk &= false;
 			}
 		}
 		return allOk;
diff --git a/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml b/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml
index ad52d24292635fa227d77be22b4bbdf4ed0ec8e7..edd4476ac5521cd046fc0c30f275f76c7ab6d739 100644
--- a/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml
+++ b/src/main/java/org/olat/upgrade/_spring/databaseUpgradeContext.xml
@@ -224,6 +224,10 @@
 					<constructor-arg index="0" value="OLAT_14.2.7" />
 					<property name="alterDbStatements" value="alter_14_2_x_to_14_2_7.sql" />
 				</bean>
+				<bean id="database_upgrade_14_2_13" class="org.olat.upgrade.DatabaseUpgrade">
+					<constructor-arg index="0" value="OLAT_14.2.13" />
+					<property name="alterDbStatements" value="alter_14_2_x_to_14_2_13.sql" />
+				</bean>
 				<bean id="database_upgrade_15_pre_0" class="org.olat.upgrade.DatabaseUpgrade">
 					<constructor-arg index="0" value="OLAT_15.pre.0" />
 					<property name="alterDbStatements" value="alter_14_2_x_to_15_pre_0.sql" />
diff --git a/src/main/resources/database/mysql/alter_14_2_x_to_14_2_13.sql b/src/main/resources/database/mysql/alter_14_2_x_to_14_2_13.sql
new file mode 100644
index 0000000000000000000000000000000000000000..35ad20bf9472a62d158c4777d44bfc6145111bb6
--- /dev/null
+++ b/src/main/resources/database/mysql/alter_14_2_x_to_14_2_13.sql
@@ -0,0 +1,4 @@
+alter table o_as_mode_course modify a_elements text(32000);
+alter table o_as_mode_course modify a_ips text(32000);
+alter table o_as_mode_course modify a_safeexambrowserkey text(32000);
+
diff --git a/src/main/resources/database/oracle/alter_14_2_x_to_14_2_13.sql b/src/main/resources/database/oracle/alter_14_2_x_to_14_2_13.sql
new file mode 100644
index 0000000000000000000000000000000000000000..c7d4908afd6e9737c97a08f650f9a492a4abe103
--- /dev/null
+++ b/src/main/resources/database/oracle/alter_14_2_x_to_14_2_13.sql
@@ -0,0 +1,4 @@
+alter table o_as_mode_course modify a_elements varchar(32000);
+alter table o_as_mode_course modify a_ips varchar(32000);
+alter table o_as_mode_course modify a_safeexambrowserkey varchar(32000);
+
diff --git a/src/main/resources/database/oracle/setupDatabase.sql b/src/main/resources/database/oracle/setupDatabase.sql
index 337d43a491520dbb4a8db00162bce73b27fec42e..1079566432d571080112c0470ecca8522f102df0 100644
--- a/src/main/resources/database/oracle/setupDatabase.sql
+++ b/src/main/resources/database/oracle/setupDatabase.sql
@@ -1382,12 +1382,12 @@ create table o_as_mode_course (
    a_end_with_followuptime date not null,
    a_targetaudience varchar2(16 char),
    a_restrictaccesselements number default 0 not null,
-   a_elements varchar2(2048 char),
+   a_elements varchar2(32000 char),
    a_start_element varchar2(64 char),
    a_restrictaccessips number default 0 not null,
-   a_ips varchar2(2048 char),
+   a_ips varchar2(32000 char),
    a_safeexambrowser number default 0 not null,
-   a_safeexambrowserkey varchar2(2048 char),
+   a_safeexambrowserkey varchar2(32000 char),
    a_safeexambrowserhint clob,
    a_applysettingscoach number default 0 not null,
    fk_entry number(20) not null,
diff --git a/src/main/resources/database/postgresql/alter_14_2_x_to_14_2_13.sql b/src/main/resources/database/postgresql/alter_14_2_x_to_14_2_13.sql
new file mode 100644
index 0000000000000000000000000000000000000000..ec9c158de681214c035670d1e96afe09c73f1027
--- /dev/null
+++ b/src/main/resources/database/postgresql/alter_14_2_x_to_14_2_13.sql
@@ -0,0 +1,4 @@
+alter table o_as_mode_course alter column a_elements type varchar(32000);
+alter table o_as_mode_course alter column a_ips type varchar(32000);
+alter table o_as_mode_course alter column a_safeexambrowserkey type varchar(32000);
+
diff --git a/src/main/resources/database/postgresql/setupDatabase.sql b/src/main/resources/database/postgresql/setupDatabase.sql
index 8d32312bf29687312912335a9e6b027682523ecc..83f9c985cfc37312e1a5cce137060c826dfd621a 100644
--- a/src/main/resources/database/postgresql/setupDatabase.sql
+++ b/src/main/resources/database/postgresql/setupDatabase.sql
@@ -1342,12 +1342,12 @@ create table o_as_mode_course (
    a_end_with_followuptime timestamp not null,
    a_targetaudience varchar(16),
    a_restrictaccesselements bool not null default false,
-   a_elements varchar(2048),
+   a_elements varchar(32000),
    a_start_element varchar(64),
    a_restrictaccessips bool not null default false,
-   a_ips varchar(2048),
+   a_ips varchar(32000),
    a_safeexambrowser bool not null default false,
-   a_safeexambrowserkey varchar(2048),
+   a_safeexambrowserkey varchar(32000),
    a_safeexambrowserhint text,
    a_applysettingscoach bool not null default false,
    fk_entry int8 not null,