diff --git a/inc/media.php b/inc/media.php
index 31e7cad04dc1bc0459a75f06f681fb562aff3f16..60966a8f98d86d1d96c865497477c25596fdd429 100644
--- a/inc/media.php
+++ b/inc/media.php
@@ -1492,7 +1492,11 @@ function media_searchlist($query,$ns,$auth=null,$fullscreen=false,$sort='natural
             $dir = utf8_encodeFN(str_replace(':','/',$evdata['ns']));
             $quoted = preg_quote($evdata['query'],'/');
             //apply globbing
-            $quoted = str_replace(array('\*', '\?'), array('.*', '.'), $quoted);
+            $quoted = str_replace(array('\*', '\?'), array('.*', '.'), $quoted, $count);
+
+            //if we use globbing file name must match entirely but may be preceded by arbitrary namespace
+            if ($count > 0) $quoted = '^([^:]*:)*'.$quoted.'$';
+
             $pattern = '/'.$quoted.'/i';
             search($evdata['data'],
                     $conf['mediadir'],