diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql
index e5601727861bb205fc26679a3ec77a1957b01f5a..741e5728ce179edcd0a7b4a64d75de8e3c500989 100644
--- a/db/StoredProcedures.sql
+++ b/db/StoredProcedures.sql
@@ -1403,6 +1403,41 @@ END //
 
 
 
+DROP PROCEDURE IF EXISTS SearchTeacherNew//
+CREATE PROCEDURE `SearchTeacherNew`		( 	IN `FacultyID` INT,
+											IN `DepartmentID` INT,
+											IN `Last` VARCHAR(30) CHARSET utf8, 
+											IN `First` VARCHAR(30) CHARSET utf8, 
+									 		IN `Second` VARCHAR(30) CHARSET utf8,
+									 		IN `DisciplineID` INT  
+										)
+    NO SQL
+BEGIN
+	SELECT 	teachers.ID 			AS 'TeacherID', 
+			teachers.LastName 		AS 'TeacherLast', 
+			teachers.FirstName 		AS 'TeacherFirst', 
+			teachers.SecondName		AS 'TeacherSecond', 
+			teachers.AccountID		AS 'TeacherAccID',
+			job_positions.Name 		AS 'JobPositionName', 
+			departments.ID 			AS 'DepID',
+			departments.Name 		AS 'DepName'
+	FROM `teachers`
+	INNER JOIN `departments` ON departments.ID = teachers.DepartmentID
+	INNER JOIN `job_positions` ON job_positions.ID = teachers.JobPositionID
+	LEFT JOIN `disciplines_teachers` ON 	disciplines_teachers.TeacherID = teachers.ID AND 
+											disciplines_teachers.DisciplineID = DisciplineID
+	WHERE	( DepartmentID = 0 OR departments.ID = DepartmentID) AND 
+			( FacultyID = 0 OR departments.FacultyID = FacultyID) AND 
+			( teachers.LastName LIKE CONCAT(Last,"%") ) AND 
+			( teachers.FirstName LIKE CONCAT(First,"%") ) AND
+			( teachers.SecondName LIKE CONCAT(Second,"%") ) AND
+			disciplines_teachers.ID IS NULL
+	ORDER BY departments.FacultyID ASC, departments.Name ASC, teachers.LastName ASC, teachers.FirstName ASC, teachers.SecondName ASC;
+
+END //
+
+
+
 
 
 
@@ -1506,7 +1541,7 @@ END //
 
 
 DROP FUNCTION IF EXISTS UnbindTeacher//
-CREATE FUNCTION `UnbindTeacher`	(	`AccessedTeacher` INT,
+CREATE FUNCTION `UnbindTeacher`	(	`AuthorID` INT,
 									`BindingTeacher` INT,
 									`DisciplineID` INT		
 							 	) 	RETURNS int(11)
@@ -1519,12 +1554,16 @@ BEGIN
 	INTO checker 
 	FROM `disciplines`
 	WHERE 	disciplines.ID = DisciplineID AND
-			disciplines.AuthorID = AccessedTeacher 
+			disciplines.AuthorID = AuthorID 
 	LIMIT 1;
 	IF NOT (checker > 0) THEN
 		RETURN -1;
 	END IF;
 
+	IF AuthorID = BindingTeacher
+		RETURN -1;
+	END IF;
+
 	DELETE FROM `disciplines_teachers`
 	WHERE 	disciplines_teachers.DisciplineID = DisciplineID AND
 			disciplines_teachers.TeacherID = BindingTeacher;