diff -urN share-2.0.0.connector_anchors/api/classes/CMap.php share/api/classes/CMap.php
--- share-2.0.0.connector_anchors/api/classes/CMap.php	2012-07-12 15:44:30.000000000 -0400
+++ share/api/classes/CMap.php	2012-07-12 16:54:09.000000000 -0400
@@ -214,6 +214,7 @@
 					if (!isset($result[$sysmap['sysmapid']]['urls'])) {
 						$result[$sysmap['sysmapid']]['urls'] = array();
 					}
+					$sysmap = $this->splitLabelLocationAndFontSize($sysmap);
 					$result[$sysmap['sysmapid']] += $sysmap;
 				}
 			}
@@ -713,6 +714,7 @@
  * @param string $maps['highlight']
  * @param array $maps['label_type']
  * @param int $maps['label_location']
+ * @param int $maps['font_size'] size of the font used for the labels
  * @param int $maps['grid_size'] size of a one grid cell. 100 refers to 100x100 and so on.
  * @param int $maps['grid_show'] does grid need to be shown. Constants: SYSMAP_GRID_SHOW_ON / SYSMAP_GRID_SHOW_OFF
  * @param int $maps['grid_align'] does elements need to be aligned to the grid. Constants: SYSMAP_GRID_ALIGN_ON / SYSMAP_GRID_ALIGN_OFF
@@ -723,6 +725,8 @@
 
 		$this->checkInput($maps, __FUNCTION__);
 
+		$maps=$this->mergeLabelLocationAndFontSize($maps);
+		
 		$sysmapids = DB::insert('sysmaps', $maps);
 
 		$newUrls = array();
@@ -785,6 +789,45 @@
 	}
 
 	/**
+	* Split the database label_location to return the proper label_location and font size.
+	* In order to avoid modifying the database, we use the last digit to keep the label_location and
+	* store the font_size in decimals.
+	*
+	* @param array $selement an array containing the element data
+	* @return the updated array containing the element data
+	*/
+	private function splitLabelLocationAndFontSize($map) {
+		if (key_exists('label_location',$map) && !is_null($map['label_location'])) {
+			$map['font_size'] = intval($map['label_location']/10);
+			$map['label_location'] = $map['label_location']%10;
+		}
+		// Not defined or 0 size: we use default value.
+		if (!key_exists('font_size',$map) || is_null($map['font_size']) || $map['font_size']==0)
+			$map['font_size'] = MAP_LABEL_SIZE_DEFAULT;
+		return $map;
+	}
+	
+	/**
+	 * Merge the label_location and font_size fields to be stored in the database.
+	 * In order to avoid modifying the database, we use the last digit to keep the label_location and
+	 * store the font_size in decimals.
+	 *
+	 * @param array $selements multidimensional array with elements data
+	 * @return the updated multidimensional array with elements data
+	 */
+	private function mergeLabelLocationAndFontSize($maps) {
+		foreach (array_keys($maps) as $key) {
+			# we don't store the font_size if we use the default one.
+			if (key_exists('font_size', $maps[$key]) && !is_null($maps[$key]['font_size']) && $maps[$key]['font_size']!=MAP_LABEL_SIZE_DEFAULT) {
+				# We use decimals to store font size. We only need the last digit for the location itself.
+				$maps[$key]['label_location'] = $maps[$key]['label_location']+10*$maps[$key]['font_size'];
+				unset($maps[$key]['font_size']);
+			}
+		}
+		return $maps;
+	}
+	
+	/**
 	* Split the database draw type to return the proper drawtype and anchors position.
 	* In order to avoid modifying the database, we use the last digit to keep the drawtype and
 	* store the anchor1 with the hundreds and anchor2 in decimals.
@@ -874,6 +917,7 @@
  * @param string $maps['backgroundid']
  * @param array $maps['label_type']
  * @param int $maps['label_location']
+ * @param int $maps['font_size']
  * @param int $maps['grid_size'] size of a one grid cell. 100 refers to 100x100 and so on.
  * @param int $maps['grid_show'] does grid need to be shown. Constants: SYSMAP_GRID_SHOW_ON / SYSMAP_GRID_SHOW_OFF
  * @param int $maps['grid_align'] does elements need to be aligned to the grid. Constants: SYSMAP_GRID_ALIGN_ON / SYSMAP_GRID_ALIGN_OFF
@@ -890,6 +934,8 @@
 		$selementsToDelete = $selementsToUpdate = $selementsToAdd = array();
 		$linksToDelete = $linksToUpdate = $linksToAdd = array();
 
+		$maps=$this->mergeLabelLocationAndFontSize($maps);
+		
 		foreach ($maps as $map) {
 			$updateMaps[] = array(
 				'values' => $map,
diff -urN share-2.0.0.connector_anchors/include/defines.inc.php share/include/defines.inc.php
--- share-2.0.0.connector_anchors/include/defines.inc.php	2012-07-11 11:48:53.000000000 -0400
+++ share/include/defines.inc.php	2012-07-12 15:25:23.000000000 -0400
@@ -277,6 +277,10 @@
 define('MAP_LABEL_ALIGN_RIGHT',3);
 define('MAP_LABEL_ALIGN_TOP',4);
 
+define('MAP_LABEL_SIZE_MIN',5);
+define('MAP_LABEL_SIZE_DEFAULT',8);
+define('MAP_LABEL_SIZE_MAX',14);
+
 define('SYSMAP_ELEMENT_TYPE_HOST',		0);
 define('SYSMAP_ELEMENT_TYPE_MAP',		1);
 define('SYSMAP_ELEMENT_TYPE_TRIGGER',	2);
diff -urN share-2.0.0.connector_anchors/include/maps.inc.php share/include/maps.inc.php
--- share-2.0.0.connector_anchors/include/maps.inc.php	2012-07-12 14:55:19.000000000 -0400
+++ share/include/maps.inc.php	2012-07-12 16:34:07.000000000 -0400
@@ -1731,7 +1731,7 @@
 
 function drawMapLinkLabels(&$im, $map, $map_info, $resolveMacros = true) {
 	global $colors;
-
+	$font_size = (key_exists('font_size',$map) && !is_null($map['font_size']))?$map['font_size']:MAP_LABEL_SIZE_DEFAULT;
 	$links = $map['links'];
 
 	foreach ($links as $link) {
@@ -1781,7 +1781,7 @@
 		}
 
 		foreach ($strings as $str) {
-			$dims = imageTextSize(8, 0, $str);
+			$dims = imageTextSize($font_size, 0, $str);
 
 			$box_width = ($box_width > $dims['width']) ? $box_width : $dims['width'];
 			$box_height += $dims['height'] + 2;
@@ -1809,12 +1809,12 @@
 
 		$increasey = 4;
 		foreach ($strings as $str) {
-			$dims = imageTextSize(8, 0, $str);
+			$dims = imageTextSize($font_size, 0, $str);
 
 			$labelx = ($x1 + $x2) / 2 - ($dims['width'] / 2);
 			$labely = $boxY_top + $increasey;
 
-			imagetext($im, 8, 0, $labelx, $labely + $dims['height'], $colors['Black'], $str);
+			imagetext($im, $font_size, 0, $labelx, $labely + $dims['height'], $colors['Black'], $str);
 
 			$increasey += $dims['height'] + 2;
 		}
@@ -1828,6 +1828,8 @@
 		return;
 	}
 
+	$font_size = (key_exists('font_size',$map) && !is_null($map['font_size']))?$map['font_size']:MAP_LABEL_SIZE_DEFAULT;
+	
 	$selements = $map['selements'];
 	$all_strings = '';
 	$label_lines = array();
@@ -1914,7 +1916,7 @@
 		}
 	}
 
-	$allLabelsSize = imageTextSize(8, 0, str_replace("\r", '', str_replace("\n", '', $all_strings)));
+	$allLabelsSize = imageTextSize($font_size, 0, str_replace("\r", '', str_replace("\n", '', $all_strings)));
 	$labelFontHeight = $allLabelsSize['height'];
 	$labelFontBaseline = $allLabelsSize['baseline'];
 
@@ -2003,7 +2005,7 @@
 
 		$w = 0;
 		foreach ($label as $str) {
-			$dims = imageTextSize(8, 0, $str['msg']);
+			$dims = imageTextSize($font_size, 0, $str['msg']);
 			$w = max($w, $dims['width']);
 		}
 		$h = count($label) * $labelFontHeight;
@@ -2078,7 +2080,7 @@
 				}				
 		}
 
-		$imgg=generateTextImage($label,$align,$label_rotation,8,$w,$labelFontHeight,$colors['Black'],$colors['White']);
+		$imgg=generateTextImage($label,$align,$label_rotation,$font_size,$w,$labelFontHeight,$colors['Black'],$colors['White']);
 		
 		switch ($label_location) {
 			case MAP_LABEL_LOC_TOP:
@@ -2140,7 +2142,7 @@
 }
 
 
-function generateTextImage($label, $align, $angle, $fontSize, $maxWidth, $maxHeight, $fgColor, $bgColor) {
+function generateTextImage($label, $align, $angle, $font_size, $maxWidth, $maxHeight, $fgColor, $bgColor) {
 	$imgg = imagecreatetruecolor($maxWidth + 1, count($label) * ($maxHeight+1));
 	$offset=0;
 	imagefill($imgg,0,0,$bgColor);
@@ -2148,7 +2150,7 @@
 		$line=$label[$i];
 		$color = isset($line['color']) ? $line['color'] : $fgColor;
 		$str = str_replace("\r", '', $line['msg']);
-		$dims = imageTextSize(8, 0, $str);
+		$dims = imageTextSize($font_size, 0, $str);
 		switch ($align) {
 			case MAP_LABEL_ALIGN_RIGHT:
 				$x=$maxWidth-$dims['width'];
@@ -2159,7 +2161,7 @@
 			default:
 				$x=0;
 		}
-		imageText($imgg, $fontSize, 0, $x, $dims['height'] + $offset - $dims['baseline'], $color, $str);
+		imageText($imgg, $font_size, 0, $x, $dims['height'] + $offset - $dims['baseline'], $color, $str);
 		$offset+=$maxHeight+1;
 	}
 	imagealphablending($imgg, false);
diff -urN share-2.0.0.connector_anchors/include/views/configuration.sysmap.edit.php share/include/views/configuration.sysmap.edit.php
--- share-2.0.0.connector_anchors/include/views/configuration.sysmap.edit.php	2012-06-28 16:22:09.000000000 -0400
+++ share/include/views/configuration.sysmap.edit.php	2012-07-12 16:56:05.000000000 -0400
@@ -132,6 +132,13 @@
 $cmbLocation->addItems(array(0 => _('Bottom'), 1 => _('Left'), 2 => _('Right'), 3 => _('Top')));
 $sysmapList->addRow(_('Icon label location'), $cmbLocation);
 
+// append Label font size box
+$cmbFontsize = new CComboBox('font_size', $this->data['font_size']);
+for ($i=MAP_LABEL_SIZE_MIN;$i<=MAP_LABEL_SIZE_MAX;$i++) {
+	$cmbFontsize->addItem($i, $i);
+}
+$sysmapList->addRow(_('Label font size'), $cmbFontsize);
+
 // append show unack to sysmap
 $selectShowUnack = new CComboBox('show_unack', $this->data['show_unack']);
 $selectShowUnack->addItems(array(
diff -urN share-2.0.0.connector_anchors/sysmaps.php share/sysmaps.php
--- share-2.0.0.connector_anchors/sysmaps.php	2012-07-10 15:31:37.000000000 -0400
+++ share/sysmaps.php	2012-07-12 16:55:51.000000000 -0400
@@ -67,6 +67,7 @@
 		'label_string_image'=>		array(T_ZBX_STR, O_OPT,	 NULL,	null,		'isset({save})'),
 		'label_type'=>		array(T_ZBX_INT, O_OPT,	 NULL,	BETWEEN(MAP_LABEL_TYPE_LABEL,MAP_LABEL_TYPE_COLORED),		'isset({save})'),
 		'label_location'=>	array(T_ZBX_INT, O_OPT,	 NULL,	BETWEEN(0,3),		'isset({save})'),
+		'font_size'=>	array(T_ZBX_INT, O_OPT,	 NULL,	BETWEEN(MAP_LABEL_SIZE_MIN,MAP_LABEL_SIZE_MAX),		'isset({save})'),
 		'urls'=>			array(T_ZBX_STR, O_OPT,	 NULL,	null,		null),
 // Actions
 		'save'=>			array(T_ZBX_STR, O_OPT, P_SYS|P_ACT,	NULL,	NULL),
@@ -138,6 +139,7 @@
 			'label_string_image' => get_request('label_string_image',''),
 			'label_type' => $_REQUEST['label_type'],
 			'label_location' => $_REQUEST['label_location'],
+			'font_size' => $_REQUEST['font_size'],
 			'show_unack' => get_request('show_unack', 0),
 			'urls' => get_request('urls', array())
 		);
@@ -241,6 +243,7 @@
 			$sysmap['label_string_image'] = get_request('label_string_image', '');
 			$sysmap['label_type'] = get_request('label_type', 0);
 			$sysmap['label_location'] = get_request('label_location', 0);
+			$sysmap['font_size'] = get_request('font_size', MAP_LABEL_SIZE_DEFAULT);
 			$sysmap['highlight'] = get_request('highlight', 0);
 			$sysmap['markelements'] = get_request('markelements', 0);
 			$sysmap['expandproblem'] = get_request('expandproblem', 0);
