diff --git a/include/types/global.h b/include/types/global.h
index 2203a1f..b3b9672 100644
--- a/include/types/global.h
+++ b/include/types/global.h
@@ -186,10 +186,13 @@
 #endif
 
 #ifdef USE_51DEGREES
-	fiftyoneDegreesDataSet _51d_data_set;
-	char * _51d_data_file_path;       /* the path of the data file. this is taken from 51degrees-data-file in config. */
 	char _51d_property_seperator;    /* the seperator to use in the response for the values. this is taken from 51degrees-property-seperator from config. */
 	struct list _51d_property_names; /* list of properties to load into the data set. this is taken from 51degrees-property-name-list from config. */
+	char * _51d_data_file_path;
+#ifdef FIFTYONEDEGREES_H_PATTERN_INCLUDED
+	fiftyoneDegreesDataSet _51d_data_set; /* data set used with the pattern detection method. */
+#endif
+
 #endif
 };
 
diff --git a/src/cfgparse.c b/src/cfgparse.c
index 44b1c2c..30d51c7 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -1752,7 +1752,7 @@
 #ifdef USE_51DEGREES
 	else if (strcmp(args[0], "51degrees-data-file") == 0) {
 		if(!*(args[1])) {
-			Alert("parsing [%s:%d]: '%s' expects a filepath to a 51Degrees data file.\n", file, linenum, args[0]);
+			Alert("parsing [%s:%d]: '%s' expects a filepath to a 51Degrees trie or pattern data file.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
@@ -1760,12 +1760,12 @@
 	}
 	else if (strcmp(args[0], "51degrees-property-seperator") == 0) {
 		if(!*(args[1])) {
-			Alert("parsing [%s:%d]: '%s' expects a ingle character.\n", file, linenum, args[0]);
+			Alert("parsing [%s:%d]: '%s' expects a single character.\n", file, linenum, args[0]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
 		if (strlen(args[1]) > 1) {
-			Alert("parsing [%s:%d]: '%s' expects a ingle character, got '%s'.\n", file, linenum, args[0], args[1]);
+			Alert("parsing [%s:%d]: '%s' expects a single character, got '%s'.\n", file, linenum, args[0], args[1]);
 			err_code |= ERR_ALERT | ERR_FATAL;
 			goto out;
 		}
diff --git a/src/haproxy.c b/src/haproxy.c
index daf68d0..e04aa3f 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -548,8 +548,8 @@
 #ifdef USE_51DEGREES
 	int i = 0;
 	struct _51d_property_names *name;
-	fiftyoneDegreesDataSetInitStatus _51d_dataset_status;
 	char **_51d_property_list;
+	fiftyoneDegreesDataSetInitStatus _51d_dataset_status = DATA_SET_INIT_STATUS_NOT_SET;
 #endif
 
 	chunk_init(&trash, malloc(global.tune.bufsize), global.tune.bufsize);
@@ -1108,9 +1108,14 @@
 	list_for_each_entry(name, &global._51d_property_names, list)
 		_51d_property_list[i++] = name->name;
 
+#ifdef FIFTYONEDEGREES_H_TRIE_INCLUDED
+	_51d_dataset_status = fiftyoneDegreesInitWithPropertyArray(global._51d_data_file_path, _51d_property_list, i);
+#endif
+#ifdef FIFTYONEDEGREES_H_PATTERN_INCLUDED
 	_51d_dataset_status = fiftyoneDegreesInitWithPropertyArray(global._51d_data_file_path, &global._51d_data_set, _51d_property_list, i);
-	free(_51d_property_list);
+#endif
 	chunk_reset(&trash);
+
 	switch (_51d_dataset_status) {
 		case DATA_SET_INIT_STATUS_SUCCESS:
 			break;
@@ -1118,23 +1123,37 @@
 			chunk_printf(&trash, "Insufficient memory.");
 			break;
 		case DATA_SET_INIT_STATUS_CORRUPT_DATA:
-			chunk_printf(&trash, "Corrupt data.");
+#ifdef FIFTYONEDEGREES_H_TRIE_INCLUDED
+			chunk_printf(&trash, "Corrupt data file. Check that the data file provided is uncompressed and Trie data format.");
+#endif
+#ifdef FIFTYONEDEGREES_H_PATTERN_INCLUDED
+			chunk_printf(&trash, "Corrupt data file. Check that the data file provided is uncompressed and Pattern data format.");
+#endif
 			break;
 		case DATA_SET_INIT_STATUS_INCORRECT_VERSION:
-			chunk_printf(&trash, "Incorrect version.");
+#ifdef FIFTYONEDEGREES_H_TRIE_INCLUDED
+			chunk_printf(&trash, "Incorrect version. Check that the data file provided is uncompressed and Trie data format.");
+#endif
+#ifdef FIFTYONEDEGREES_H_PATTERN_INCLUDED
+			chunk_printf(&trash, "Incorrect version. Check that the data file provided is uncompressed and Pattern data format.");
+#endif
 			break;
 		case DATA_SET_INIT_STATUS_FILE_NOT_FOUND:
 			chunk_printf(&trash, "File not found.");
 			break;
+		case DATA_SET_INIT_STATUS_NOT_SET:
+			chunk_printf(&trash, "Data set not initialised.");
+			break;
 	}
 	if (_51d_dataset_status != DATA_SET_INIT_STATUS_SUCCESS) {
 		if (trash.len)
-			Alert("51D Setup - Error reading 51Degrees data file: %s\n", trash.str);
+			Alert("51Degrees Setup - Error reading 51Degrees data file. %s\n", trash.str);
 		else
-			Alert("51D Setup - Error reading 51Degrees data file.\n");
+			Alert("51Degrees Setup - Error reading 51Degrees data file.\n");
 		exit(1);
 	}
-#endif
+	free(_51d_property_list);
+#endif // USE_51DEGREES
 }
 
 static void deinit_acl_cond(struct acl_cond *cond)
@@ -1488,13 +1507,18 @@
 #endif
 
 #ifdef USE_51DEGREES
+#ifdef FIFTYONEDEGREES_H_TRIE_INCLUDED
+	fiftyoneDegreesDestroy();
+#endif
+#ifdef FIFTYONEDEGREES_H_PATTERN_INCLUDED
 	fiftyoneDegreesDestroy(&global._51d_data_set);
+#endif
 	free(global._51d_data_file_path); global._51d_data_file_path = NULL;
 	list_for_each_entry_safe(_51d_prop_name, _51d_prop_nameb, &global._51d_property_names, list) {
 		LIST_DEL(&_51d_prop_name->list);
 		free(_51d_prop_name);
 	}
-#endif
+#endif // USE_51DEGREES
 
 	free(global.log_send_hostname); global.log_send_hostname = NULL;
 	free(global.log_tag); global.log_tag = NULL;
diff --git a/src/sample.c b/src/sample.c
index 6418be8..1993255 100644
--- a/src/sample.c
+++ b/src/sample.c
@@ -2130,13 +2130,64 @@
 }
 
 #ifdef USE_51DEGREES
-static int fiftyone_degrees(const struct arg *args,
-                           struct sample *smp, void *private)
+#ifdef FIFTYONEDEGREES_H_TRIE_INCLUDED
+static int
+sample_fiftyone_degrees(const struct arg *args, struct sample *smp, void *private)
+{
+	int i; // used in loops.
+	int device_offset;
+	int property_index;
+	char no_data[] = "NoData"; // response when no data could be found.
+	struct chunk *tmp;
+
+	// use a temporary trash buffer and copy data in it
+	smp->data.str.str[smp->data.str.len] = '\0';
+
+	// perform detection.
+	device_offset = fiftyoneDegreesGetDeviceOffset(smp->data.str.str);
+
+	i = 0;
+	tmp = get_trash_chunk();
+	chunk_reset(tmp);
+
+	// loop through property names passed to the filter and fetch them from the dataset.
+	while (args[i].data.str.str) {
+		// try to find request property in dataset.
+		property_index = fiftyoneDegreesGetPropertyIndex(args[i].data.str.str);
+		if (property_index > 0) {
+			chunk_appendf(tmp, "%s", fiftyoneDegreesGetValue(device_offset, property_index));
+		}
+		else {
+			chunk_appendf(tmp, "%s", no_data);
+		}
+		// add seperator
+		if (global._51d_property_seperator)
+			chunk_appendf(tmp, "%c", global._51d_property_seperator);
+		else
+			chunk_appendf(tmp, ",");
+		++i;
+	}
+
+	if (tmp->len) {
+		--tmp->len;
+		tmp->str[tmp->len] = '\0';
+	}
+
+	smp->data.str.str = tmp->str;
+	smp->data.str.len = strlen(smp->data.str.str);
+
+	return 1;
+}
+#endif // FIFTYONEDEGREES_H_TRIE_INCLUDED
+
+#ifdef FIFTYONEDEGREES_H_PATTERN_INCLUDED
+static int
+sample_fiftyone_degrees(const struct arg *args, struct sample *smp, void *private)
 {
 	int i, j, found; // used in loops.
 	fiftyoneDegreesWorkset* ws; // workset for detection.
 	char no_data[] = "NoData"; // response when no data could be found.
-	struct _51d_property_names *property;
+	const char* property_name;
 	struct chunk *tmp;
 
 	// use a temporary trash buffer and copy data in it
@@ -2157,17 +2208,18 @@
 	while (args[i].data.str.str) {
 		found = j = 0;
 		// try to find request property in dataset.
-		list_for_each_entry(property, &global._51d_property_names, list) {
-			if (strcmp(property->name, args[i].data.str.str) == 0) {
+		for (j = 0; j < ws->dataSet->requiredPropertyCount; j++) {
+			property_name = fiftyoneDegreesGetPropertyName(ws->dataSet, ws->dataSet->requiredProperties[j]);
+			if (strcmp(property_name, args[i].data.str.str) == 0) {
 				found = 1;
 				fiftyoneDegreesSetValues(ws, j);
 				chunk_appendf(tmp, "%s", fiftyoneDegreesGetValueName(ws->dataSet, *ws->values));
 				break;
 			}
-			++j;
 		}
-		if (!found)
+		if (!found) {
 			chunk_appendf(tmp, "%s", no_data);
+		}
 
 		// add seperator
 		if (global._51d_property_seperator)
@@ -2189,7 +2241,8 @@
 
 	return 1;
 }
-#endif
+#endif // FIFTYONEDEGREES_H_PATTERN_INCLUDED
+#endif // USE_51DEGREES
 
 
 /************************************************************************/
@@ -2346,7 +2399,7 @@
 	{ "mod",    sample_conv_arith_mod,  ARG1(1,UINT), NULL, SMP_T_UINT, SMP_T_UINT },
 	{ "neg",    sample_conv_arith_neg,             0, NULL, SMP_T_UINT, SMP_T_UINT },
 #ifdef USE_51DEGREES
-	{ "51d",    fiftyone_degrees,       ARG5(1,STR,STR,STR,STR,STR), NULL, SMP_T_STR, SMP_T_STR },
+	{ "51d",    sample_fiftyone_degrees,ARG5(1,STR,STR,STR,STR,STR), NULL, SMP_T_STR, SMP_T_STR },
 #endif
 
 	{ NULL, NULL, 0, 0, 0 },
