diff --git a/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachine.java b/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachine.java
index a672255..f13f0c4 100644
--- a/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachine.java
+++ b/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachine.java
@@ -564,21 +564,21 @@
         }
 
         private void fetchContents(BrowseTree.BrowseNode target) {
+            int start = target.getChildrenCount();
+            int end = Math.min(target.getExpectedChildren(), target.getChildrenCount()
+                            + GET_FOLDER_ITEMS_PAGINATION_SIZE) - 1;
             switch (target.getScope()) {
                 case AvrcpControllerService.BROWSE_SCOPE_PLAYER_LIST:
                     AvrcpControllerService.getPlayerListNative(mRemoteDevice.getBluetoothAddress(),
-                            0, 255);
+                            start, end);
                     break;
                 case AvrcpControllerService.BROWSE_SCOPE_NOW_PLAYING:
                     AvrcpControllerService.getNowPlayingListNative(
-                            mRemoteDevice.getBluetoothAddress(), target.getChildrenCount(),
-                            Math.min(target.getExpectedChildren(), target.getChildrenCount()
-                            + GET_FOLDER_ITEMS_PAGINATION_SIZE - 1));
+                            mRemoteDevice.getBluetoothAddress(), start, end);
                     break;
                 case AvrcpControllerService.BROWSE_SCOPE_VFS:
                     AvrcpControllerService.getFolderListNative(mRemoteDevice.getBluetoothAddress(),
-                            target.getChildrenCount(), Math.min(target.getExpectedChildren(),
-                                target.getChildrenCount() + GET_FOLDER_ITEMS_PAGINATION_SIZE - 1));
+                            start, end);
                     break;
                 default:
                     Log.e(STATE_TAG, "Scope " + target.getScope() + " cannot be handled here.");
diff --git a/src/com/android/bluetooth/avrcpcontroller/BrowseTree.java b/src/com/android/bluetooth/avrcpcontroller/BrowseTree.java
index 1fb498a..7f4f3bf 100644
--- a/src/com/android/bluetooth/avrcpcontroller/BrowseTree.java
+++ b/src/com/android/bluetooth/avrcpcontroller/BrowseTree.java
@@ -63,6 +63,7 @@
         mRootNode = new BrowseNode(new MediaItem(new MediaDescription.Builder().setExtras(mdBundle)
               .setMediaId(ROOT).setTitle(ROOT).build(), MediaItem.FLAG_BROWSABLE));
         mRootNode.mBrowseScope = AvrcpControllerService.BROWSE_SCOPE_PLAYER_LIST;
+        mRootNode.setExpectedChildren(255);
 
         Bundle upnodeBundle = new Bundle();
         upnodeBundle.putString(AvrcpControllerService.MEDIA_ITEM_UID_KEY, UP);
