diff --git a/plugins/UserCountryMap/Controller.php b/plugins/UserCountryMap/Controller.php
index 05d92b4b3b6ae538c35d2ee815813c6335ca08e1..e367bf5ecf80b5b4820782e7360675e1b8cb6d82 100644
--- a/plugins/UserCountryMap/Controller.php
+++ b/plugins/UserCountryMap/Controller.php
@@ -30,6 +30,8 @@ class Piwik_UserCountryMap_Controller extends Piwik_Controller
 		$token_auth = Piwik::getCurrentUserTokenAuth();
 		
 		$view = Piwik_View::factory('worldmap');
+
+		// will be escaped in the template
 		$view->dataUrl = "?module=API"
 			. "&method=API.getProcessedReport&format=XML"
 			. "&apiModule=UserCountry&apiAction=getCountry"
@@ -58,19 +60,25 @@ class Piwik_UserCountryMap_Controller extends Piwik_Controller
 			. '&filter_limit=-1'
 		);
 		$metaData = $request->process();
-		
+
 		$metrics = array();
-		foreach ($metaData[0]['metrics'] as $id => $val)
+		if(!is_array($metaData))
+		{
+			throw new Exception("Error while requesting Map reports for website " . (int)$idSite);
+		}
+		else
 		{
-			if (Piwik_Common::getRequestVar('period') == 'day' || $id != 'nb_uniq_visitors') {
+			foreach ($metaData[0]['metrics'] as $id => $val)
+			{
+				if (Piwik_Common::getRequestVar('period') == 'day' || $id != 'nb_uniq_visitors') {
+					$metrics[] = array($id, $val);
+				}
+			}
+			foreach ($metaData[0]['processedMetrics'] as $id => $val)
+			{
 				$metrics[] = array($id, $val);
 			}
-		} 
-		foreach ($metaData[0]['processedMetrics'] as $id => $val) 
-		{
-			$metrics[] = array($id, $val);
 		}
-		
 		$view->metrics = $metrics;
 		$view->defaultMetric = 'nb_visits';
 		echo $view->render();
diff --git a/plugins/UserCountryMap/templates/worldmap.tpl b/plugins/UserCountryMap/templates/worldmap.tpl
index 70eba516b06c574b42a7211fa9c12f40e9c8c372..b37d523730ff07467c15e576f8451d4fa9a54e97 100644
--- a/plugins/UserCountryMap/templates/worldmap.tpl
+++ b/plugins/UserCountryMap/templates/worldmap.tpl
@@ -28,7 +28,7 @@
 	var isSafari = (navigator.userAgent.toLowerCase().indexOf("safari") != -1 &&
             navigator.userAgent.toLowerCase().indexOf("chrome") == -1);
 	
-	fv.dataUrl = encodeURIComponent("{$dataUrl}");
+	fv.dataUrl = encodeURIComponent("{$dataUrl|escape:'javascript'}");
 	fv.hueMin = {$hueMin};
 	fv.hueMax = {$hueMax};
 	fv.satMin = {$satMin};