diff --git a/openbis-ipad/source/core-plugins/ipad-ui-ylab/1/dss/reporting-plugins/ipad-read-service-v1/ipad_read.py b/openbis-ipad/source/core-plugins/ipad-ui-ylab/1/dss/reporting-plugins/ipad-read-service-v1/ipad_read.py
index 3b8893e72b1385ebbe9c44c92d269fd5eb688a04..b8efd8d13c5ae7208c975895bd61d966c8374c14 100644
--- a/openbis-ipad/source/core-plugins/ipad-ui-ylab/1/dss/reporting-plugins/ipad-read-service-v1/ipad_read.py
+++ b/openbis-ipad/source/core-plugins/ipad-ui-ylab/1/dss/reporting-plugins/ipad-read-service-v1/ipad_read.py
@@ -2,7 +2,6 @@ from ch.systemsx.cisd.openbis.ipad.v2.server import IRequestHandler, AbstractReq
 from ch.systemsx.cisd.openbis.ipad.v2.server import DrillRequestHandler, NavigationRequestHandler, DetailRequestHandler, SearchRequestHandler
 from ch.systemsx.cisd.openbis.ipad.v2.server import EmptyDataRequestHandler, IpadServiceUtilities
 from ch.systemsx.cisd.openbis.ipad.v2.server import IRequestHandlerFactory, RequestHandlerDispatcher
-
 from ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1 import MaterialIdentifierCollection
 from ch.systemsx.cisd.openbis.generic.shared.basic.dto import MaterialIdentifier
 from com.fasterxml.jackson.databind import ObjectMapper 
@@ -573,9 +572,7 @@ class YeastLabRootRequestHandler(RootRequestHandler):
 
 			# Check which navigational entities are being requested here
 		nav_entities = self.entities_parameter()
-		print "Root: %s" % nav_entities
 		nav_perm_ids = [entity['PERM_ID'] for entity in nav_entities]
-		print "Root: %s" % nav_perm_ids
 		self.add_match_clause(all_samples_sc, "OLIGO", nav_perm_ids)
 		self.add_match_clause(all_samples_sc, "ANTIBODY", nav_perm_ids)
 		self.add_match_clause(all_samples_sc, "CHEMICAL", nav_perm_ids)
@@ -681,7 +678,6 @@ class YeastLabSearchRequestHandler(SearchRequestHandler):
 		self.westernBlottings = samplesByType.getSamples('WESTERN_BLOTTING')
 
 	def retrieve_data(self):
-		print "SearchRequestHandler: retrieve_data"
 		all_samples_sc = SearchCriteria()
 		all_samples_sc.addMatchClause(SearchCriteria.MatchClause.createAnyFieldMatch(self.parameters['searchtext']))
 		self.samples = self.searchService.searchForSamples(all_samples_sc)
@@ -699,19 +695,45 @@ class YeastLabSearchRequestHandler(SearchRequestHandler):
 				children.append(yeast)			
 
 	def add_data_rows(self):
-		print "SearchRequestHandler: add_data_rows"
-		self.add_rows(oligos_to_dict(self.oligos, False))
-		self.add_rows(antibodies_to_dict(self.antibodies, False))
-		self.add_rows(chemicals_to_dict(self.chemicals, False))
-		self.add_rows(protocols_to_dict(self.protocols, False))
-		self.add_rows(medias_to_dict(self.medias, False))
-		self.add_rows(pcrs_to_dict(self.pcrs, False))
-		self.add_rows(buffers_to_dict(self.buffers, False))
-		self.add_rows(plasmids_to_dict(self.plasmids, self.children_map, False))
-		self.add_rows(yeasts_to_dict(self.yeasts, self.children_map, False))
-		self.add_rows(bacterias_to_dict(self.bacterias, False))
-		self.add_rows(enzymes_to_dict(self.enzymes, False))
-		self.add_rows(westernBlottings_to_dict(self.westernBlottings, False))
+		#To Group the search results by the order given
+		for sample in self.samples:
+			if sample.getSampleType() == 'OLIGO':
+				self.add_row(oligo_to_dict(sample, False))
+			if sample.getSampleType() == 'ANTIBODY':
+				self.add_row(antibody_to_dict(sample, False))
+			if sample.getSampleType() == 'CHEMICAL':
+				self.add_row(chemical_to_dict(sample, False))
+			if sample.getSampleType() == 'GENERAL_PROTOCOL':
+				self.add_row(protocol_to_dict(sample, False))
+			if sample.getSampleType() == 'MEDIA':
+				self.add_row(media_to_dict(sample, False))
+			if sample.getSampleType() == 'PCR':
+				self.add_row(pcr_to_dict(sample, False))
+			if sample.getSampleType() == 'SOLUTIONS_BUFFERS':
+				self.add_row(buffer_to_dict(sample, False))
+			if sample.getSampleType() == 'PLASMID':
+				self.add_row(plasmid_to_dict(sample, self.children_map, False))
+			if sample.getSampleType() == 'YEAST':
+				self.add_row(yeast_to_dict(sample, {}, False))
+			if sample.getSampleType() == 'BACTERIA':
+				self.add_row(bacteria_to_dict(sample, False))
+			if sample.getSampleType() == 'ENZYME':
+				self.add_row(enzyme_to_dict(sample, False))
+			if sample.getSampleType() == 'WESTERN_BLOTTING':
+				self.add_row(westernBlotting_to_dict(sample, False))
+		#To Group the search results by type
+		#self.add_rows(oligos_to_dict(self.oligos, False))
+		#self.add_rows(antibodies_to_dict(self.antibodies, False))
+		#self.add_rows(chemicals_to_dict(self.chemicals, False))
+		#self.add_rows(protocols_to_dict(self.protocols, False))
+		#self.add_rows(medias_to_dict(self.medias, False))
+		#self.add_rows(pcrs_to_dict(self.pcrs, False))
+		#self.add_rows(buffers_to_dict(self.buffers, False))
+		#self.add_rows(plasmids_to_dict(self.plasmids, self.children_map, False))
+		#self.add_rows(yeasts_to_dict(self.yeasts, self.children_map, False))
+		#self.add_rows(bacterias_to_dict(self.bacterias, False))
+		#self.add_rows(enzymes_to_dict(self.enzymes, False))
+		#self.add_rows(westernBlottings_to_dict(self.westernBlottings, False))
 
 class YeastLabDetailRequestHandler(DetailRequestHandler):
 	"""Handler for the DETAIL request."""
@@ -772,7 +794,6 @@ class DetailRequestHandlerFactory(IRequestHandlerFactory):
 			
 class SearchRequestHandlerFactory(IRequestHandlerFactory):
 	def createRequestHandler(self, parameters, builder, searchService):
-		print "SearchRequestHandlerFactory: createRequestHandler"
 		return YeastLabSearchRequestHandler(parameters, builder)
         
 def aggregate(parameters, builder):