diff --git a/lib/group.php b/lib/group.php
index e47b770f597cefddd453646d32c7b3cc19ba8ba9..72cf5dc89afe9727b64c3f52a2b208d2578c7614 100644
--- a/lib/group.php
+++ b/lib/group.php
@@ -264,10 +264,10 @@ class OC_Group {
 	 * @brief get a list of all users in a group
 	 * @returns array with user ids
 	 */
-	public static function usersInGroup($gid){
+	public static function usersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
 		$users=array();
 		foreach(self::$_usedBackends as $backend){
-			$users=array_merge($backend->usersInGroup($gid),$users);
+			$users = array_merge($backend->usersInGroup($gid, $search, $limit, $offset), $users);
 		}
 		return $users;
 	}
@@ -277,10 +277,11 @@ class OC_Group {
 	 * @param array $gids
 	 * @returns array with user ids
 	 */
-	public static function usersInGroups($gids){
+	public static function usersInGroups($gids, $search = '', $limit = -1, $offset = 0) {
 		$users = array();
-		foreach($gids as $gid){
-			$users = array_merge(array_diff(self::usersInGroup($gid), $users), $users);
+		foreach ($gids as $gid) {
+			// TODO Need to apply limits to groups as total
+			$users = array_merge(array_diff(self::usersInGroup($gid, $search, $limit, $offset), $users), $users);
 		}
 		return $users;
 	}
diff --git a/lib/group/backend.php b/lib/group/backend.php
index 7a7cebc726f71bc5b81e1ddcf1c5e252a0062549..4c7d09bcb16062015ab16dc5c27a0c4f6027956f 100644
--- a/lib/group/backend.php
+++ b/lib/group/backend.php
@@ -122,7 +122,7 @@ abstract class OC_Group_Backend implements OC_Group_Interface {
 	 * @brief get a list of all users in a group
 	 * @returns array with user ids
 	 */
-	public function usersInGroup($gid){
+	public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
 		return array();
 	}
 
diff --git a/lib/group/database.php b/lib/group/database.php
index 669edc662cc3f938036959d79c2b43f693ba3a2f..1cb4171f49fb8a80b5695230cec13259d29b3460 100644
--- a/lib/group/database.php
+++ b/lib/group/database.php
@@ -182,12 +182,16 @@ class OC_Group_Database extends OC_Group_Backend {
 	 * @brief get a list of all users in a group
 	 * @returns array with user ids
 	 */
-	public function usersInGroup($gid){
-		$query=OC_DB::prepare('SELECT uid FROM *PREFIX*group_user WHERE gid=?');
-		$users=array();
-		$result=$query->execute(array($gid));
-		while($row=$result->fetchRow()){
-			$users[]=$row['uid'];
+	public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
+		if ($limit == -1) {
+			$query = OC_DB::prepare('SELECT uid FROM *PREFIX*group_user WHERE gid = ? AND uid LIKE ?');
+		} else {
+			$query = OC_DB::prepare('SELECT uid FROM *PREFIX*group_user WHERE gid = ? AND uid LIKE ? LIMIT '.$limit.' OFFSET '.$offset);
+		}
+		$result = $query->execute(array($gid, $search.'%'));
+		$users = array();
+		while ($row = $result->fetchRow()) {
+			$users[] = $row['uid'];
 		}
 		return $users;
 	}
diff --git a/lib/group/dummy.php b/lib/group/dummy.php
index 092aa9beda829ce76cd82d227c27140b9432a349..51eca28f3f41f717facfe5f0d32d089a201263ab 100644
--- a/lib/group/dummy.php
+++ b/lib/group/dummy.php
@@ -149,7 +149,7 @@ class OC_Group_Dummy extends OC_Group_Backend {
 	 * @brief get a list of all users in a group
 	 * @returns array with user ids
 	 */
-	public function usersInGroup($gid){
+	public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
 		if(isset($this->groups[$gid])){
 			return $this->groups[$gid];
 		}else{
diff --git a/lib/group/example.php b/lib/group/example.php
index c33b435ca05dc0f352f4df7007155e8fb1c14981..76d12629763a8b45011e49573fda5722982b4aa9 100644
--- a/lib/group/example.php
+++ b/lib/group/example.php
@@ -104,6 +104,6 @@ abstract class OC_Group_Example {
 	 * @brief get a list of all users in a group
 	 * @returns array with user ids
 	 */
-	abstract public static function usersInGroup($gid);
+	abstract public static function usersInGroup($gid, $search = '', $limit = -1, $offset = 0);
 
 }
diff --git a/lib/group/interface.php b/lib/group/interface.php
index f496d502df6b5301263204aa609ac201dc9b692c..12cc07a537495fcb9596a13299de7c7488f1a171 100644
--- a/lib/group/interface.php
+++ b/lib/group/interface.php
@@ -71,6 +71,6 @@ interface OC_Group_Interface {
 	 * @brief get a list of all users in a group
 	 * @returns array with user ids
 	 */
-	public function usersInGroup($gid);
+	public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0);
 
 }
\ No newline at end of file