diff --git a/core/DataFiles/SearchEngines.php b/core/DataFiles/SearchEngines.php
index 03209af231f8a8accf634ff899a9365d8dc6cfb2..a874e8fd4ccbfe57ba4dad3bc491932a55eebf87 100644
--- a/core/DataFiles/SearchEngines.php
+++ b/core/DataFiles/SearchEngines.php
@@ -943,6 +943,12 @@ if (!isset($GLOBALS['Piwik_SearchEngines'])) {
         // X-recherche
         'www.x-recherche.com'            => array('X-Recherche', 'MOTS', 'cgi-bin/websearch?MOTS={k}'),
 
+        // Yahoo! Japan
+        'search.yahoo.co.jp'             => array('Yahoo! Japan', 'p', 'search?p={k}'),
+        'video.search.yahoo.co.jp'       => array('Yahoo! Japan Videos', 'p', 'search?p={k}'),
+        'image.search.yahoo.co.jp'       => array('Yahoo! Japan Images', 'p', 'search?p={k}'),
+
+
         // Yahoo
         'search.yahoo.com'               => array('Yahoo!', array('p', 'q'), 'search?p={k}'),
 //		'*.search.yahoo.com'		=> array('Yahoo!'), // see built-in helper in Common.php
@@ -953,8 +959,6 @@ if (!isset($GLOBALS['Piwik_SearchEngines'])) {
         'espanol.yahoo.com'              => array('Yahoo!'),
         'qc.yahoo.com'                   => array('Yahoo!'),
         'one.cn.yahoo.com'               => array('Yahoo!'),
-        'video.search.yahoo.co.jp'       => array('Yahoo!'),
-        'image.search.yahoo.co.jp'       => array('Yahoo!'),
 
         // Powered by Yahoo APIs
         'www.cercato.it'                 => array('Yahoo!', 'q'),
diff --git a/core/UrlHelper.php b/core/UrlHelper.php
index 2ce26ba1659faced01314422c19c50b9b952cbd1..b99f457f4024c1bb9ef7d1852d8b5a3da9519dea 100644
--- a/core/UrlHelper.php
+++ b/core/UrlHelper.php
@@ -286,8 +286,18 @@ class UrlHelper
         $searchEngines = Common::getSearchEngineUrls();
 
         $hostPattern = self::getLossyUrl($referrerHost);
+        /*
+         * Try to get the best matching 'host' in definitions
+         * 1. check if host + path matches an definition
+         * 2. check if host only matches
+         * 3. check if host pattern + path matches
+         * 4. check if host pattern matches
+         * 5. special handling
+         */
         if (array_key_exists($referrerHost . $referrerPath, $searchEngines)) {
             $referrerHost = $referrerHost . $referrerPath;
+        } elseif (array_key_exists($referrerHost, $searchEngines)) {
+            // no need to change host
         } elseif (array_key_exists($hostPattern . $referrerPath, $searchEngines)) {
             $referrerHost = $hostPattern . $referrerPath;
         } elseif (array_key_exists($hostPattern, $searchEngines)) {
diff --git a/tests/resources/extractSearchEngineInformationFromUrlTests.yml b/tests/resources/extractSearchEngineInformationFromUrlTests.yml
index 84cde865122721d92a535b6e2956f77f0cf083c7..1c519bdc78d852927e54fc0433d795b3e3ecb70e 100644
--- a/tests/resources/extractSearchEngineInformationFromUrlTests.yml
+++ b/tests/resources/extractSearchEngineInformationFromUrlTests.yml
@@ -379,9 +379,17 @@
   keywords: 'searchterm'
 
 - url: 'http://image.search.yahoo.co.jp/search?ei=UTF-8&fr=top_ga1_sa&p=%EF%BD%94%EF%BD%8F+%EF%BD%88%EF%BD%85%EF%BD%81%EF%BD%92%EF%BD%94+%EF%BD%8C%EF%BD%8F%EF%BD%87%EF%BD%8F'
-  engine: 'Yahoo!'
+  engine: 'Yahoo! Japan Images'
   keywords: 'to heart logo'
 
+- url: 'http://video.search.yahoo.co.jp/search?tt=c&ei=UTF-8&fr=sfp_as&aq=-1&oq=&p=piwik&meta=vc%3D'
+  engine: 'Yahoo! Japan Videos'
+  keywords: 'piwik'
+
+- url: 'http://search.yahoo.co.jp/search?ei=UTF-8&p=piwik'
+  engine: 'Yahoo! Japan'
+  keywords: 'piwik'
+
 - url: 'http://www.claro-search.com/?q=logiciels+pour+%C3%A9crire+en+japonais+avec+windows+xp&s=web&as=0&rlz=0&babsrc=SP_clro'
   engine: 'Claro Search'
   keywords: 'logiciels pour écrire en japonais avec windows xp'