diff --git a/api-openbis-javascript/src/v3/as/dto/sample/Sample.js b/api-openbis-javascript/src/v3/as/dto/sample/Sample.js
index 23852de463d088b31a5210fd5e07370233c8bc96..795675bec4d8e1627b8199ddfd929741693b46ae 100644
--- a/api-openbis-javascript/src/v3/as/dto/sample/Sample.js
+++ b/api-openbis-javascript/src/v3/as/dto/sample/Sample.js
@@ -561,7 +561,7 @@ define([ "stjs", "util/Exceptions", "as/dto/common/Relationship" ], function(stj
 		experiment : "Experiment",
 		properties : {
 			name : "Map",
-			arguments : [ "String", "String" ]
+			arguments : [ "String", "Serializable" ]
 		},
 		materialProperties : {
 			name : "Map",
diff --git a/api-openbis-javascript/src/v3/util/Json.js b/api-openbis-javascript/src/v3/util/Json.js
index 556741631d59bae46685fa5a83540fd2e09adf20..595179d138805c2e1147b096ffddbfdb69d5353e 100644
--- a/api-openbis-javascript/src/v3/util/Json.js
+++ b/api-openbis-javascript/src/v3/util/Json.js
@@ -144,8 +144,9 @@ define([ 'jquery', 'underscore' ], function(jquery, _) {
 	}
 
 	var fromJsonObjectWithTypeOrArrayOrMap = function(jsonType, jsonObject, objectMap, modulesMap) {
-		if (jsonObject instanceof Array) {
-			if (jsonType && _.isString(jsonType) && jsonObject.length == 2) {
+		if (Array.isArray(jsonObject)) {
+		    // properties are <String, Serializable>
+			if (jsonType && _.isString(jsonType) && jsonObject.length == 2 && jsonType != 'Serializable') {
 				return jsonObject[1];
 			} else {
 				var array = [];