diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/server/ServerFacade.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/server/ServerFacade.js
index 22d54e9f84b16d3ced0972e539a80cbbcc06c5f3..6f4581a9976d5522f7e3a22f7645ded6e6c8f941 100644
--- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/server/ServerFacade.js
+++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/server/ServerFacade.js
@@ -312,6 +312,38 @@ function ServerFacade(openbisServer) {
 		});
 	}
 	
+	this.searchWithTypeAndLinks = function(sampleType, sampleCode, callbackFunction)
+	{	
+		var matchClauses = [ {"@type":"AttributeMatchClause",
+					fieldType : "ATTRIBUTE",			
+					attribute : "TYPE",
+					desiredValue : sampleType
+				}
+		]
+		
+		if(sampleCode){
+		  matchClauses.push(
+			  		{
+				  	"@type":"AttributeMatchClause",
+					fieldType : "ATTRIBUTE",			
+					attribute : "CODE",
+					desiredValue : sampleCode 
+				}		
+		  );
+		}
+		
+		var sampleCriteria = 
+		{
+			matchClauses : matchClauses,
+			operator : "MATCH_ALL_CLAUSES"
+		};
+		
+		var localReference = this;
+		this.openbisServer.searchForSamplesWithFetchOptions(sampleCriteria, ["PROPERTIES", "ANCESTORS", "DESCENDANTS"], function(data) {
+			callbackFunction(localReference.getInitializedSamples(data.result));
+		});
+	}
+	
 	this.searchWithType = function(sampleType, sampleCode, callbackFunction)
 	{	
 		var matchClauses = [ {"@type":"AttributeMatchClause",
diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/DilutionWidget.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/DilutionWidget.js
index 3762da1766c149a499e311c2f7aa67787d68287c..fa92123ac3df0923fad41ed4edac178f069a577a 100644
--- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/DilutionWidget.js
+++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/DilutionWidget.js
@@ -33,7 +33,7 @@ function DilutionWidget(containerId, serverFacade) {
 		$("#"+this._containerId).append("Loading data for Dilution Widget.");
 		var _this = this;
 		//Load all proteins
-		this._serverFacade.searchWithType("PROTEIN", null, function(data) {
+		this._serverFacade.searchWithTypeAndLinks("PROTEIN", null, function(data) {
 			_this._allProteins = data;
 			
 			//First repaint after all initializations
@@ -55,9 +55,26 @@ function DilutionWidget(containerId, serverFacade) {
 		
 		$component.attr('data-row-number', rowNumber);
 		
+		//Get proteins for row
+		var proteins = [];
+		var _this = this;
+		this._allProteins.forEach(function(protein) {
+			protein.children.forEach(function(clone) {
+				clone.children.forEach(function(lot) { 
+					lot.children.forEach(function(conjugatedClone) {
+						var metalMass = conjugatedClone.properties["METAL_MASS"];
+						var predefinedMass = _this._predefinedMass[rowNumber] + "";
+						if(predefinedMass === metalMass) {
+							proteins.push(protein);
+						}
+					});
+				});
+			});
+		});
+		//
 		$component.append($("<option>").attr('value', '').attr('selected', '').text(''));
-		for(var i = 0; i < this._allProteins.length; i++) {
-			$component.append($("<option>").attr('value',this._allProteins[i].permId).text(this._allProteins[i].properties["PROTEIN_NAME"]));
+		for(var i = 0; i < proteins.length; i++) {
+			$component.append($("<option>").attr('value',proteins[i].permId).text(proteins[i].properties["PROTEIN_NAME"]));
 		}
 		
 		var _this = this;