diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql
index 333850005b502b50ee99102edce1c49ce5910565..18a100af28c0b06d31618252a0dbdab4099c244a 100644
--- a/db/StoredProcedures.sql
+++ b/db/StoredProcedures.sql
@@ -1598,36 +1598,36 @@ CREATE FUNCTION `BindTeacher`(	`AccessedTeacher` INT,
 BEGIN  
     DECLARE checker INT; 
 
+-- 1. check if AccessedTeacher is author
+
 	SELECT disciplines.ID 
 	INTO checker 
 	FROM `disciplines`
-	INNER JOIN `disciplines_teachers` ON 	disciplines_teachers.DisciplineID = disciplines.ID AND 
-											disciplines_teachers.TeacherID = AccessedTeacher  
-	WHERE disciplines.ID = DisciplineID
+	WHERE 	disciplines.ID = DisciplineID AND
+			disciplines.AuthorID = AccessedTeacher 
 	LIMIT 1;
 	IF NOT (checker > 0) THEN
 		RETURN -1;
 	END IF;
 
-
-
+-- 2. check if BindingTeacher has rights to access this discipline
 	SET checker = -1;
 	SELECT disciplines_teachers.ID 
 	INTO checker 
-	FROM `disciplines`
-	INNER JOIN `disciplines_teachers` ON 	disciplines_teachers.DisciplineID = disciplines.ID AND 
-											disciplines_teachers.TeacherID = BindingTeacher  
-	WHERE disciplines.ID = DisciplineID
+	FROM `disciplines_teachers`
+	WHERE 	disciplines_teachers.DisciplineID = DisciplineID AND
+			disciplines_teachers.TeacherID = BindingTeacher  
 	LIMIT 1;
 	IF checker > 0 THEN
 		RETURN 0;
 	END IF;
 
+-- 3. insert BindingTeacher in access list
 	INSERT INTO `disciplines_teachers`
 		(	disciplines_teachers.DisciplineID,
 			disciplines_teachers.TeacherID 	)
 	VALUES	( DisciplineID, BindingTeacher );
-	RETURN 0;
+	RETURN 1;
 	
 END //