diff --git a/apps/gallery/lib/album.php b/apps/gallery/lib/album.php
index 502237481a91aa93e2e59553034fc62907a1f05c..167813a1a3157d4821e98c22409f849d06c51f5e 100644
--- a/apps/gallery/lib/album.php
+++ b/apps/gallery/lib/album.php
@@ -54,6 +54,7 @@ class OC_Gallery_Album {
   public static function removeByPath($path, $owner) {
     $album = self::find($owner, null, $path);
     $album = $album->fetchRow();
+    error_log($path . '--' . $album['album_name']);
     self::remove($owner, $album['album_name']);
     OC_Gallery_Photo::removeByAlbumId($album['album_id']);
     // find and remove any gallery which might be stored lower in dir hierarchy
diff --git a/apps/gallery/lib/hooks_handlers.php b/apps/gallery/lib/hooks_handlers.php
index 236a4b96a0769be3ca03b4579963e8af006c5960..605cb0d003718f1ef756ebd399c14059341912de 100644
--- a/apps/gallery/lib/hooks_handlers.php
+++ b/apps/gallery/lib/hooks_handlers.php
@@ -58,12 +58,18 @@ class OC_Gallery_Hooks_Handlers {
     return OC_Gallery_Album::find(OC_User::getUser(), null, $path);
   }
 
+  public static function pathInRoot($path) {
+    $root = OC_Appconfig::getValue('gallery', 'root', '/');
+    return substr($path, 0, strlen($path)>strlen($root)?strlen($root):strlen($path)) == $root;
+  }
+
   public static function addPhotoFromPath($params) {
     $fullpath = $params[OC_Filesystem::signal_param_path];
 
     if (!self::isPhoto($fullpath)) return;
 
     $path = substr($fullpath, 0, strrpos($fullpath, '/'));
+    if (!self::pathInRoot($path)) return;
     OC_Gallery_Scanner::scanDir($path, $albums);
 
   }
@@ -71,8 +77,8 @@ class OC_Gallery_Hooks_Handlers {
   public static function removePhoto($params) {
     $path = $params[OC_Filesystem::signal_param_path];
     if (OC_Filesystem::is_dir($path) && self::directoryContainsPhotos($path)) {
-      OC_Gallery_Album::removeByPath($path, OC_User::getUser());
-      OC_Gallery_Photo::removeByPath($path.'/%');
+      if(!self::pathInRoot($path)) return;
+      OC_Gallery_Album::removeByPath($path.'/', OC_User::getUser());
     } elseif (self::isPhoto($path)) {
       OC_Gallery_Photo::removeByPath($path);
     }