diff --git a/bts/BTS_Tests_OML.ttcn b/bts/BTS_Tests_OML.ttcn
index dc1b7ce..396ed38 100644
--- a/bts/BTS_Tests_OML.ttcn
+++ b/bts/BTS_Tests_OML.ttcn
@@ -113,11 +113,33 @@
 /* Perform an "OPSTART" procedure with the speciifed MO" */
 private function f_oml_opstart(template (value) OML_FOM_ObjectClass obj_class,
 				template (value) OML_FOM_ObjectInstance obj_inst,
-				boolean exp_fail := false)
+				boolean exp_fail := false,
+				template OML_FOM_OperationalState exp_stchg := ?)
 runs on BSC_OML_CT {
+	var boolean check_stchg := not istemplatekind(exp_stchg, "?");
+	var boolean ack_received := false;
+	var boolean stchg_received := not check_stchg;
+
 	OML.send(ts_OML_Opstart(obj_class, obj_inst));
+
 	alt {
+	[check_stchg] OML.receive(tr_OML_StateChgEvtRep(obj_class, obj_inst,
+							    exp_stchg, NM_AVSTATE_OK)) {
+		stchg_received := true;
+		if (not ack_received) {
+			repeat;
+		}
+		setverdict(pass);
+		}
+	[check_stchg] OML.receive(tr_OML_StateChgEvtRep(obj_class, obj_inst,
+							    ?, NM_AVSTATE_OK)) {
+		setverdict(fail, "Unexpected State Change for ", obj_class, " ", obj_inst);
+		}
 	[not exp_fail] OML.receive(tr_OML_OpstartACK(obj_class, obj_inst)) {
+		ack_received := true;
+		if (not stchg_received) {
+			repeat;
+		}
 		setverdict(pass);
 		}
 	[not exp_fail] OML.receive(tr_OML_OpstartNACK(obj_class, obj_inst)) {
@@ -515,7 +537,7 @@
 	}
 
 	f_oml_bts_attr();
-	f_oml_opstart(obj_class, obj_inst);
+	f_oml_opstart(obj_class, obj_inst, false, NM_OPSTATE_ENABLED);
 }
 
 
