Index: trunk/service.php
===================================================================
--- trunk/service.php	(revision 164)
+++ trunk/service.php	(revision 166)
@@ -658,5 +658,5 @@
     $database = Core::getDatabase();
 	
-	$database->setQuery("SELECT * FROM #__gallery_albums");
+	$database->setQuery("SELECT a.*, COUNT(p.albumid) AS pictures FROM #__gallery_albums AS a LEFT JOIN #__gallery_pictures AS p ON a.id = p.albumid GROUP BY a.id");
 	$albumsResponse = $database->loadAssocList();
 	
@@ -668,12 +668,9 @@
     
 	foreach ($albumsResponse as $album) {
-		// Needs optimization
-		$database->setQuery("SELECT * FROM #__gallery_pictures WHERE albumid = " . (int) $album["id"]);
-		
         $albums[] = Array(
             "id"          => (int)    $album["id"],
             "name"        => (string) $album["name"],
             "description" => (string) $album["description"],
-            "pictures"	  => (int)	  $database->getNumRows($database->query())
+            "pictures"	  => (int)	  $album["pictures"]
 		);
 	}
