diff --git a/apps/media/ajax/api.php b/apps/media/ajax/api.php
index e0183ff05de8f7cab45c210699c8e3d5c647f132..6014e4976c0e6eb7433a9c5893feffe322dc20ad 100644
--- a/apps/media/ajax/api.php
+++ b/apps/media/ajax/api.php
@@ -53,6 +53,7 @@ if(!isset($arguments['search'])){
 	$arguments['search']='';
 }
 OC_MEDIA_COLLECTION::$uid=OC_User::getUser();
+unset($_SESSION['collection']);
 if($arguments['action']){
 	switch($arguments['action']){
 		case 'delete':
@@ -83,13 +84,6 @@ if($arguments['action']){
 			OC_DB::beginTransaction();
 			set_time_limit(0); //recursive scan can take a while
 			$path=$arguments['path'];
-			if(OC_Filesystem::is_dir($path)){
-				$paths=explode(PATH_SEPARATOR,OC_Preferences::getValue(OC_User::getUser(),'media','paths',''));
-				if(array_search($path,$paths)===false){
-					$paths[]=$path;
-					OC_Preferences::setValue(OC_User::getUser(),'media','paths',implode(PATH_SEPARATOR,$paths));
-				}
-			}
 			echo OC_MEDIA_SCANNER::scanFolder($path);
 			OC_DB::commit();
 			flush();
@@ -108,16 +102,18 @@ if($arguments['action']){
 			echo json_encode(OC_MEDIA_COLLECTION::getSongs($arguments['artist'],$arguments['album'],$arguments['search']));
 			break;
 		case 'get_path_info':
-			$songId=OC_MEDIA_COLLECTION::getSongByPath($arguments['path']);
-			if($songId==0){
-				unset($_SESSION['collection']);
-				$songId= OC_MEDIA_SCANNER::scanFile($arguments['path']);
-			}
-			if($songId>0){
-				$song=OC_MEDIA_COLLECTION::getSong($songId);
-				$song['artist']=OC_MEDIA_COLLECTION::getArtistName($song['song_artist']);
-				$song['album']=OC_MEDIA_COLLECTION::getAlbumName($song['song_album']);
-				echo json_encode($song);
+			if(OC_Filesystem::file_exists($arguments['path'])){
+				$songId=OC_MEDIA_COLLECTION::getSongByPath($arguments['path']);
+				if($songId==0){
+					unset($_SESSION['collection']);
+					$songId= OC_MEDIA_SCANNER::scanFile($arguments['path']);
+				}
+				if($songId>0){
+					$song=OC_MEDIA_COLLECTION::getSong($songId);
+					$song['artist']=OC_MEDIA_COLLECTION::getArtistName($song['song_artist']);
+					$song['album']=OC_MEDIA_COLLECTION::getAlbumName($song['song_album']);
+					echo json_encode($song);
+				}
 			}
 			break;
 		case 'play':
@@ -129,14 +125,46 @@ if($arguments['action']){
 			OC_MEDIA_COLLECTION::registerPlay($songId);
 			
 			header('Content-Type:'.$ftype);
+			 // calc an offset of 24 hours
+			$offset = 3600 * 24;
+			// calc the string in GMT not localtime and add the offset
+			$expire = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
+			//output the HTTP header
+			Header($expire);
 			header('Expires: 0');
-			header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
+			header('Cache-Control: max-age=3600, must-revalidate');
 			header('Pragma: public');
+			header('Accept-Ranges: bytes');
 			header('Content-Length: '.OC_Filesystem::filesize($arguments['path']));
+			$gmt_mtime = gmdate('D, d M Y H:i:s', OC_Filesystem::filemtime($arguments['path']) ) . ' GMT';
+			header("Last-Modified: " . $gmt_mtime );
 			
 			OC_Filesystem::readfile($arguments['path']);
 			exit;
+		case 'find_music':
+			echo json_encode(findMusic());
+			exit;
+	}
+}
+
+function findMusic($path='/'){
+	$music=array();
+	$dh=OC_Filesystem::opendir($path);
+	if($dh){
+		while($filename=readdir($dh)){
+			if($filename[0]!='.'){
+				$file=$path.'/'.$filename;
+				if(OC_Filesystem::is_dir($file)){
+					$music=array_merge($music,findMusic($file));
+				}else{
+					if(OC_MEDIA_SCANNER::isMusic($filename)){
+						$music[]=$file;
+					}
+				}
+			}
+		}
 	}
+	return $music;
 }
 
 ?>
\ No newline at end of file
diff --git a/apps/media/appinfo/app.php b/apps/media/appinfo/app.php
index 20c58689f09b8fd2755a575d2f25513d6836ccb6..4cdb36d4504299fc984c3c4a45bf9014fca9dc59 100644
--- a/apps/media/appinfo/app.php
+++ b/apps/media/appinfo/app.php
@@ -26,8 +26,7 @@ OC_Util::addScript('media','loader');
 
 OC_App::register( array( 'order' => 3, 'id' => 'media', 'name' => 'Media' ));
 
-OC_App::addNavigationEntry( array( 'id' => 'media_index', 'order' => 2, 'href' => OC_Helper::linkTo( 'media', 'index.php' ), 'icon' => OC_Helper::imagePath( 'media', 'media.png' ), 'name' => 'Media' ));
-OC_App::addSettingsPage( array( 'id' => 'media_settings', 'order' => 5, 'href' => OC_Helper::linkTo( 'media', 'settings.php' ), 'name' => 'Media', 'icon' => OC_Helper::imagePath( 'media', 'media.png' )));
+OC_App::addNavigationEntry( array( 'id' => 'media_index', 'order' => 2, 'href' => OC_Helper::linkTo( 'media', 'index.php' ), 'icon' => OC_Helper::imagePath( 'media', 'media.png' ), 'name' => 'Music' ));
 
 // add subnavigations
 $entry = array(
diff --git a/apps/media/index.php b/apps/media/index.php
index 43423d27de6592ffa31ba2aace5e6dbbe2941b94..a7128aaad42910cdfe4e063fd2c6a6a8a5c47aee 100644
--- a/apps/media/index.php
+++ b/apps/media/index.php
@@ -37,6 +37,7 @@ OC_Util::addScript('media','player');
 OC_Util::addScript('media','music');
 OC_Util::addScript('media','playlist');
 OC_Util::addScript('media','collection');
+OC_Util::addScript('media','scanner');
 OC_Util::addScript('media','jquery.jplayer.min');
 OC_Util::addStyle('media','player');
 OC_Util::addStyle('media','music');
diff --git a/apps/media/js/collection.js b/apps/media/js/collection.js
index 95e5293ea48305631f7ec257bd528ca45d2d75af..42d249112b12fc3ff035185d5e94f29f3a2a5a2e 100644
--- a/apps/media/js/collection.js
+++ b/apps/media/js/collection.js
@@ -32,6 +32,10 @@ Collection={
 					for(var i=0;i<Collection.loadedListeners.length;i++){
 						Collection.loadedListeners[i]();
 					}
+					if(collection.length==0){
+						$('#scan input.start').val('Scan');
+						$('#plugins a[href="#collection"]').trigger('click');
+					}
 					
 				}
 			});
@@ -159,6 +163,35 @@ Collection={
 				}
 			}
 		}
+	},
+	addSong:function(song){
+		var artist=false
+		var album=false;
+		for(var i=0;i<Collection.artists.length;i++){
+			if(Collection.artists[i].artist_id==song.song_artist){
+				artist=Collection.artists[i];
+				for(var j=0;j<artist.albums.length;j++){
+					if(artist.albums[j].album_id==song.song_album){
+						album=artist.albums[j];
+						break;
+					}
+				}
+				break;
+			}
+		}
+		if(!artist){
+			artist={artist_id:song.song_artist,artist_name:song.artist,albums:[]};
+			Collection.artists.push(artist);
+			if(!Collection.parent || Collection.parent.is(":visible")){
+				Collection.display();
+			}
+			
+		}
+		if(!album){
+			album={album_id:song.song_album,album_name:song.album,album_artist:song.song_artist,songs:[]};
+			artist.albums.push(album)
+		}
+		album.songs.push(song)
 	}
 }
 
@@ -173,4 +206,13 @@ $(document).ready(function(){
 		$(this).parent().toggleClass('active');
 		Collection.showSongs($(this).parent());
 	});
+	Collection.parent.hide();
+	$('#scan input.start').click(function(){
+		$('#scan input.start').hide();
+		$('#scan input.stop').show();
+		$('#scan input.stop').click(function(){
+			Scanner.toggle();
+		});
+		Scanner.scanCollection();
+	});
 });
diff --git a/apps/media/js/music.js b/apps/media/js/music.js
index d55112797173f29e649dd94bac22582ad109c082..4e11b2951be1708a066bc2e48e8d8547c4590abc 100644
--- a/apps/media/js/music.js
+++ b/apps/media/js/music.js
@@ -1,13 +1,13 @@
 $(document).ready(function(){
 	//load the collection
-	$('#plugins a[href="#collection"]').click(function(){
-		$('#plugins li.subentry a.active').removeClass('active');
+	$('#navigation a[href="#collection"]').click(function(){
+		$('#navigation li.subentry a.active').removeClass('active');
 		$(this).addClass('active');
 		PlayList.hide();
 		Collection.display();
 	});
-	$('#plugins a[href="#playlist"]').click(function(){
-		$('#plugins li.subentry a.active').removeClass('active');
+	$('#navigation a[href="#playlist"]').click(function(){
+		$('#navigation li.subentry a.active').removeClass('active');
 		$(this).addClass('active');
 		PlayList.render();
 		Collection.hide();
@@ -15,7 +15,7 @@ $(document).ready(function(){
 	var tab=window.location.href.slice(window.location.href.indexOf('#') + 1);
 	PlayList.init('mp3',function(){
 		if(tab=='collection'){
-			$('#plugins a[href="#collection"]').trigger('click');
+			$('#navigation a[href="#collection"]').trigger('click');
 		}
 	});
 	OC.search.customResults.Music=function(row,item){
diff --git a/apps/media/js/player.js b/apps/media/js/player.js
index 369d3e389c3f84fb4bcd027aad5b8d90d4160050..b6d3bc01ddbe1989d2a89c4ad4f4f7cafd011c72 100644
--- a/apps/media/js/player.js
+++ b/apps/media/js/player.js
@@ -3,6 +3,7 @@ var PlayList={
 	current:-1,
 	items:[],
 	player:null,
+	volume:0.8,
 	next:function(){
 		var next=PlayList.current+1;
 		if(next>=PlayList.items.length){
@@ -19,7 +20,7 @@ var PlayList={
 		PlayList.play(next);
 		PlayList.render();
 	},
-	play:function(index,ready){
+	play:function(index,time,ready){
 		if(index==null){
 			index=PlayList.current;
 		}
@@ -28,11 +29,11 @@ var PlayList={
 			if(PlayList.player){
 				if(PlayList.player.data('jPlayer').options.supplied!=PlayList.items[index].type){//the the audio type changes we need to reinitialize jplayer
 					PlayList.player.jPlayer("destroy");
-					PlayList.init(PlayList.items[index].type,function(){PlayList.play(null,ready)});
+					PlayList.init(PlayList.items[index].type,function(){PlayList.play(null,time,eady)});
 				}else{
 					PlayList.player.jPlayer("setMedia", PlayList.items[PlayList.current]);
 					PlayList.items[index].playcount++;
-					PlayList.player.jPlayer("play");
+					PlayList.player.jPlayer("play",time);
 					localStorage.setItem(oc_current_user+'oc_playlist_current',index);
 					if(index>0){
 						var previous=index-1;
@@ -82,6 +83,14 @@ var PlayList={
 			play:function(){
 				localStorage.setItem(oc_current_user+'oc_playlist_playing','true');
 			},
+			timeupdate:function(){
+				var time=Math.round(PlayList.player.data('jPlayer').status.currentTime);
+				localStorage.setItem(oc_current_user+'oc_playlist_time',time);
+			},
+			volumechange:function(){
+				var volume=PlayList.player.data('jPlayer').options.volume*100;
+				localStorage.setItem(oc_current_user+'oc_playlist_volume',volume);
+			},
 			supplied:type,
 			ready:function(){
 				PlayList.load();
@@ -89,6 +98,7 @@ var PlayList={
 					ready();
 				}
 			},
+			volume:PlayList.volume,
 			cssSelectorAncestor:'#jp-interface',
 			swfPath:OC.linkTo('media','js'),
 		});
@@ -150,11 +160,20 @@ var PlayList={
 		if(typeof localStorage !== 'undefined'){
 			if(localStorage.hasOwnProperty(oc_current_user+'oc_playlist_items')){
 				PlayList.items=JSON.parse(localStorage.getItem(oc_current_user+'oc_playlist_items'));
-				PlayList.current=parseInt((localStorage.getItem(oc_current_user+'oc_playlist_current')));
+				PlayList.current=parseInt(localStorage.getItem(oc_current_user+'oc_playlist_current'));
+				var time=parseInt(localStorage.getItem(oc_current_user+'oc_playlist_time'));
+				if(localStorage.hasOwnProperty(oc_current_user+'oc_playlist_volume')){
+					var volume=localStorage.getItem(oc_current_user+'oc_playlist_volume');
+					PlayList.volume=volume/100;
+					$('.jp-volume-bar-value').css('width',volume+'%');
+					if(PlayList.player.data('jPlayer')){
+						PlayList.player.jPlayer("option",'volume',volume/100);
+					}
+				}
 				if(JSON.parse(localStorage.getItem(oc_current_user+'oc_playlist_playing'))){
-					PlayList.play();
+					PlayList.play(null,time);
 				}else{
-					PlayList.play(null,function(){
+					PlayList.play(null,time,function(){
 						PlayList.player.jPlayer("pause");
 					});
 				}
diff --git a/apps/media/js/scanner.js b/apps/media/js/scanner.js
new file mode 100644
index 0000000000000000000000000000000000000000..de67c7c9931d94497a94a27471b813256053685d
--- /dev/null
+++ b/apps/media/js/scanner.js
@@ -0,0 +1,76 @@
+Scanner={
+	songsFound:0,
+	songsScanned:0,
+	songsChecked:0,
+	startTime:null,
+	endTime:null,
+	stopScanning:false,
+	currentIndex:-1,
+	songs:[],
+	findSongs:function(ready){
+		$.getJSON(OC.linkTo('media','ajax/api.php')+'?action=find_music',function(songs){
+			Scanner.songsFound=songs.length;
+			Scanner.currentIndex=-1
+			if(ready){
+				ready(songs)
+			}
+		});
+	},
+	scanFile:function(path,ready){
+		path=encodeURIComponent(path);
+		$.getJSON(OC.linkTo('media','ajax/api.php')+'?action=get_path_info&path='+path,function(song){
+			Scanner.songsChecked++;
+			if(ready){
+				ready(song);
+			}
+			if(song){//do this after the ready call so we dont hold up the next ajax call
+				var artistId=song.song_artist;
+				Scanner.songsScanned++;
+				$('#scan span.songCount').text(Scanner.songsScanned);
+				var progress=(Scanner.songsChecked/Scanner.songsFound)*100;
+				$('#scanprogressbar').progressbar('value',progress)
+				Collection.addSong(song);
+			}
+		});
+	},
+	scanCollection:function(ready){
+		$('#scanprogressbar').progressbar({
+			value:0,
+		});
+		Scanner.songsChecked=0;
+		Scanner.songsScanned=0;
+		Scanner.startTime=new Date().getTime()/1000;
+		Scanner.findSongs(function(songs){
+			Scanner.songs=songs;
+			Scanner.start();
+		});
+	},
+	stop:function(){
+		Scanner.stopScanning=true;
+	},
+	start:function(ready){
+		Scanner.stopScanning=false;
+		var scanSong=function(){
+			Scanner.currentIndex++;
+			if(!Scanner.stopScanning && Scanner.currentIndex<Scanner.songs.length){
+				Scanner.scanFile(Scanner.songs[Scanner.currentIndex],scanSong)
+			}else{
+				Scanner.endTime=new Date().getTime()/1000;
+				if(ready){
+					ready();
+				}
+			}
+		}
+		scanSong();
+	},
+	toggle:function(){
+		if(Scanner.stopScanning){
+			Scanner.start();
+			$('#scan input.stop').val('Pause');
+		}else{
+			Scanner.stop();
+			$('#scan input.stop').val('Resume');
+		}
+	}
+
+}
diff --git a/apps/media/lib_scanner.php b/apps/media/lib_scanner.php
index ab38d76294b094c97566614c2967f3b1430f664c..c774c3c9fdb69ff45d1205266d0cec0904424b68 100644
--- a/apps/media/lib_scanner.php
+++ b/apps/media/lib_scanner.php
@@ -88,8 +88,7 @@ class OC_MEDIA_SCANNER{
 				return; //invalid mp3 file
 			}
 		}else{
-			$mimetype=OC_Filesystem::getMimeType($path);
-			if(substr($mimetype,0,4)!=='audio'){
+			if(!self::isMusic($path)){
 				return;
 			}
 			if(!self::$getID3){
@@ -141,4 +140,14 @@ class OC_MEDIA_SCANNER{
 		$songId=OC_MEDIA_COLLECTION::addSong($title,$path,$artistId,$albumId,$length,$track,$size);
 		return (!($title=='unkown' && $artist=='unkown' && $album=='unkown'))?$songId:0;
 	}
+
+	/**
+	 * quick check if a song is a music file by checking the extention, not as good as a proper mimetype check but way faster
+	 * @param string $filename
+	 * @return bool
+	 */
+	public static function isMusic($filename){
+		$ext=substr($filename,strrpos($filename,'.')+1);
+		return $ext=='mp3' || $ext=='flac' || $ext=='m4a' || $ext=='ogg' || $ext=='oga';
+	}
 }
\ No newline at end of file
diff --git a/apps/media/settings.php b/apps/media/settings.php
deleted file mode 100644
index 0563bc38fb3151b1de32215ecf77a8d2bb0837eb..0000000000000000000000000000000000000000
--- a/apps/media/settings.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/**
-* ownCloud - media plugin
-*
-* @author Robin Appelman
-* @copyright 2010 Robin Appelman icewind1991@gmail.com
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
-*
-*/
-
-
-require_once('../../lib/base.php');
-
-if( !OC_User::isLoggedIn()){
-	header( "Location: ".OC_Helper::linkTo( "index.php" ));
-	exit();
-}
-
-require( 'lib_collection.php' );
-
-OC_Util::addStyle('media','style');
-OC_Util::addScript('media','settings');
-
-OC_App::setActiveNavigationEntry( 'media_settings' );
-
-$folderNames=explode(PATH_SEPARATOR,OC_Preferences::getValue($_SESSION['user_id'],'media','paths',''));
-$folders=array();
-foreach($folderNames as $folder){
-	if($folder){
-		$folders[]=array('name'=>$folder,'songs'=>OC_MEDIA_COLLECTION::getSongCountByPath($folder));
-	}
-}
-
-$tmpl = new OC_Template( 'media', 'settings', 'admin' );
-$tmpl->assign('folders',$folders);
-$tmpl->assign('autoupdate',OC_Preferences::getValue($_SESSION['user_id'],'media','autoupdate',false));
-$tmpl->printPage();
-?>
-
diff --git a/apps/media/templates/collection.php b/apps/media/templates/collection.php
index e2c256a6480346e95e6ad8bb12072cde288d1ec2..fe50bf5ebdf332263957451eac424a5d86879e25 100644
--- a/apps/media/templates/collection.php
+++ b/apps/media/templates/collection.php
@@ -1,3 +1,9 @@
+<div id='scan'>
+	<p><span class='songCount'>0</span> Songs scanned</p>
+	<div id="scanprogressbar"></div>
+	<input type='button' class='start' value='Recan'></input>
+	<input type='button' class='stop' style='display:none' value='Pause'></input>
+</div>
 <ul id='collection'>
 	<li class='artist'>
 		<img src="<?php echo image_path('files','loading.gif') ?>" alt='loading'/>Loading Collection...
@@ -7,4 +13,5 @@
 		<button class='add'>Add</button>
 		<button class='play'>Play</button>
 	</li>
-</ul>
\ No newline at end of file
+</ul>
+
diff --git a/core/css/styles.css b/core/css/styles.css
index ff2aa98ddae2c92307ee076dd4d9ae13a7f4f72f..fa7421e094816550ef53b1b3096cc1f9e36d91c9 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -1,6 +1,6 @@
 * { margin:0; padding:0; border:0; cursor:default; }
 body { background:#fefefe; font:normal 80%/1.6em "Lucida Grande", Arial, Verdana, sans-serif; color:#000; }
-#header { position:fixed; top:0; z-index:100; width:100%; height:2.5em; padding:0.5em 1.5em; background:#1d2d44; -moz-box-shadow:0 0 10px #000, inset 0 -2px 10px #222; -webkit-box-shadow:0 0 10px #000, inset 0 -2px 10px #222; box-shadow:0 0 10px #000, inset 0 -2px 10px #222; }
+#header { position:fixed; top:0; z-index:100; width:100%; height:2.5em; padding:.5em; background:#1d2d44; -moz-box-shadow:0 0 10px #000, inset 0 -2px 10px #222; -webkit-box-shadow:0 0 10px #000, inset 0 -2px 10px #222; box-shadow:0 0 10px #000, inset 0 -2px 10px #222; }
 #body-settings #header { background:#313131; }
 #owncloud { float:left; }
 h1 { margin:1em 3em 1em 0; border-bottom:1px solid #666; text-transform:uppercase; font-weight:normal; font-style:italic; color:#666; }
@@ -72,7 +72,7 @@ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', end
 .prettybutton:hover, .prettybutton:focus { background-color:#ccc; outline:0; }
 
 /* META NAVIGATION (Settings, Log out) ---------------------------------------------------------------- */ 
-#metanav { float:right; position:relative; top:0.5em; right:2.5em; list-style:none; margin:0; padding:0; }
+#metanav { float:right; position:relative; top:.5em; right:1em; list-style:none; margin:0; padding:0; }
 #metanav li { display:inline; }
 #metanav li a { margin:.2em; padding:.7em; }
 #metanav li a:hover, #metanav li a:focus { background:rgba(0,0,0,.5); -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px; box-shadow:#555 0 1px 0; -moz-box-shadow:#555 0 1px 0; -webkit-box-shadow:#555 0 1px 0; }
@@ -83,17 +83,16 @@ form.searchbox { display:inline; position:fixed; top:.9em; right:9em; margin:0;
 input[type="search"] { font-size:1em; padding-left:2em; background:#eee url('../img/actions/search.png') .5em center no-repeat; }
 
 /* NAVIGATION ------------------------------------------------------------- */
-#plugins { position:fixed; top:3.5em; float:left; width:15.7em; padding:0; z-index:50; height:100%; background:#eee; border-right: 1px #ccc solid; -moz-box-shadow: -3px 0 7px #000; -webkit-box-shadow: -3px 0 7px #000; box-shadow: -3px 0 7px #000; } }
-#plugins ul { list-style-type:none; border-top:1px solid #ccc; }
-#plugins a { display:block; padding:0.5em 0.5em 0.5em 3em; background-position:1.5em center; background-repeat:no-repeat; border-bottom:1px solid #ddd; border-top:1px solid #fff; text-decoration:none; font-size:1.2em; color:#666; }
-#plugins a.active, #plugins a:hover, #plugins a:focus, #plugins a.selected { background-color:#ccc; border-top:1px solid #ccc; border-bottom:1px solid #ccc; color:#000; outline:0; }
-#plugins a:active { outline:0; }
-#plugins .subentry { background-color:#ddd; border-top:1px solid #aaa; color:#000; outline:0; }
-#plugins .subentry.active { background-color:#bbb; border-top:1px solid #aaa; color:#000; outline:0; }
-#plugins li.subentry a { padding-left:3.7em; font-size:1em; }
+#navigation { position:fixed; top:3.5em; float:left; width:12.5em; padding:0; z-index:50; height:100%; background:#eee; border-right: 1px #ccc solid; -moz-box-shadow: -3px 0 7px #000; -webkit-box-shadow: -3px 0 7px #000; box-shadow: -3px 0 7px #000; } }
+#navigation ul { list-style-type:none; border-top:1px solid #ccc; }
+#navigation a { display:block; padding:.5em .5em .5em 2.5em; background-position:1em center; background-repeat:no-repeat; border-bottom:1px solid #ddd; border-top:1px solid #fff; text-decoration:none; font-size:1.2em; color:#666; }
+#navigation a.active, #navigation a:hover, #navigation a:focus, #navigation a.selected { background-color:#ccc; border-top:1px solid #c8c8c8; border-bottom:1px solid #ccc; color:#000; outline:0; }
+#navigation .subentry { background-color:#ddd; border-top:1px solid #aaa; color:#555; outline:0; }
+#navigation .subentry.active { background-color:#bbb; border-top:1px solid #888; border-bottom:1px solid #bbb; outline:0; }
+#navigation li.subentry a { padding-left:3.1em; font-size:1em; }
 
 /* CONTENT ------------------------------------------------------------------ */
-#content { margin:3.5em 0 0 15.7em; }
+#content { margin:3.5em 0 0 12.5em; }
 
 /* USER SETTINGS ------------------------------------------------------------ */
 #quota_indicator { margin:0 4em 1em 0; padding:0; border:1px solid #ddd; border-radius:10px; -webkit-border-radius:10px; -moz-border-radius:10px; }
diff --git a/core/templates/layout.admin.php b/core/templates/layout.admin.php
index be4419af84911fe05ccc52afd40737c9e66d9eeb..d70c54f7b1575f271fc19416bcf69985eeaea09b 100644
--- a/core/templates/layout.admin.php
+++ b/core/templates/layout.admin.php
@@ -37,7 +37,7 @@
 		</div>
 
 		<div id="main">
-			<div id="plugins">
+			<div id="navigation">
 				<ul>
 					<?php foreach($_['settingsnavigation'] as $entry):?>
 						<li><a style="background-image:url(<?php echo $entry['icon']; ?>)" href="<?php echo $entry['href']; ?>" title="" <?php if( $entry["active"] ): ?> class="active"<?php endif; ?>><?php echo $entry['name'] ?></a></li>
diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php
index 33de9d5f72f2ba63c069fa3a66e6fd81a788530d..217dd19c3d21f112bc90762d9242e741d050773a 100644
--- a/core/templates/layout.user.php
+++ b/core/templates/layout.user.php
@@ -41,7 +41,7 @@
 			<div id="content">
 				<?php echo $_['content']; ?>
 			</div>
-			<div id="plugins">
+			<div id="navigation">
 				<ul>
 					<?php foreach($_['navigation'] as $entry): ?>
 						<li><a style="background-image:url(<?php echo $entry['icon']; ?>)" href="<?php echo $entry['href']; ?>" title="" <?php if( $entry['active'] ): ?> class="active"<?php endif; ?>><?php echo $entry['name']; ?></a>
diff --git a/core/templates/part.searchbox.php b/core/templates/part.searchbox.php
index 49b44c718ecce2241ff5590bc60b439511d19307..f5a62de2c8b665b040c2edb882b0270be7668a6a 100644
--- a/core/templates/part.searchbox.php
+++ b/core/templates/part.searchbox.php
@@ -1,3 +1,3 @@
 <form class="searchbox" action="#" method="post">
-	<input id='searchbox' type="search" name="query" value="<?php if(isset($_POST['query'])){echo $_POST['query'];};?>" class="prettybutton" />
+	<input id='searchbox' type="search" name="query" value="<?php if(isset($_POST['query'])){echo $_POST['query'];};?>" class="prettybutton" autocomplete="off" />
 </form>
diff --git a/files/css/files.css b/files/css/files.css
index d7d681e66a36e7852397b6f58da8503bcd08fb86..3ae578f30d416cce46c7fbbbdd72a2bf2486b6bb 100644
--- a/files/css/files.css
+++ b/files/css/files.css
@@ -21,22 +21,23 @@ tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#eee; heig
 tbody a { color:#000; }
 span.extention, td.date { color:#999; }
 div.crumb { float:left; display:block; background:no-repeat right 0; padding:8px 1.5em 0 1em; height:28px; /*36-8*/ }
+div.crumb:first-child { padding-left:1.5em; }
 div.crumb:last-child { font-weight:bold; }
 table tr.mouseOver td { background-color:#eee; }
 table th { height:2em; padding:0 .5em; color:#999; }
 table th .name { float:left; margin-left:.5em; }
 table th.multiselect { background:#ddd; color:#000; font-weight:bold; }
 table th, table td { border-bottom:1px solid #ddd; text-align:left; font-weight:normal; }
-table td { border-bottom:1px solid #eee; font-style:normal; }
+table td { border-bottom:1px solid #eee; font-style:normal; background-position:1em .5em; background-repeat:no-repeat; }
 table th#headerSize, table td.filesize { width:5em; padding:0 1em; text-align:right; }
 table th#headerDate, table td.date { width:11em; padding:0 .1em 0 1em; text-align:left; }
 table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; }
-table td.filename a.name { display:block; background-image:url('../img/file.png'); height:1.5em; vertical-align:middle; }
+table td.filename a.name { display:block; height:1.5em; vertical-align:middle; margin-left:3em; }
 table tr[data-type="dir"] td.filename a.name {font-weight:bold; }
 table td.filename a.name input, table td.filename a.name form { width:100%; cursor:text }
-table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em 3em; background-position:1em .5em; background-repeat:no-repeat; }
+table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em 0; }
 table td.filename .nametext, .modified { float:left; padding:.3em 0; }
-table td.filename .nametext { width:80%; }
+table td.filename .nametext { width:60%; }
 table td.filename form { float:left; font-size:.85em; }
 #fileList tr input[type=checkbox] { display:none; float:left; margin:.7em 0 0 1em; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ }
 #fileList tr input[type=checkbox]:checked, #fileList tr:hover input[type=checkbox] { display:inline; }
@@ -48,4 +49,4 @@ table td.filename form { float:left; font-size:.85em; }
 .selectedActions a:hover, a.file_action:hover { background:#fff; -moz-box-shadow:0 0 10px #fff; -webkit-box-shadow:0 0 10px #fff; box-shadow:0 0 10px #fff; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; }
 
 /* add breadcrumb divider to the File item in navigation panel */
-#plugins>ul>li:first-child { background-position:15.7em 0px; background-repeat:no-repeat; background-image:url("/owncloud/core/img/breadcrumb-divider-start.png"); width:15.7em; padding-right:11px; }
+#navigation>ul>li:first-child { background:url('../../core/img/breadcrumb-divider-start.png') no-repeat 12.5em 0px; width:12.5em; padding-right:1em; }
diff --git a/files/js/filelist.js b/files/js/filelist.js
index 3f9b3984465178e89668174dc6280ea84214ec87..243c1113a472b40e3bb49052e0783132c95546fa 100644
--- a/files/js/filelist.js
+++ b/files/js/filelist.js
@@ -12,8 +12,8 @@ FileList={
 			var basename=name;
 			var extention=false;
 		}
-		html+='<td class="filename"><input type="checkbox" />';
-		html+='<a class="name" style="background-image:url('+img+')" href="download.php?file='+$('#dir').val()+'/'+name+'"><span class="nametext">'+basename
+		html+='<td class="filename" style="background-image:url('+img+')"><input type="checkbox" />';
+		html+='<a class="name" href="download.php?file='+$('#dir').val()+'/'+name+'"><span class="nametext">'+basename
 		if(extention){
 			html+='<span class="extention">'+extention+'</span>';
 		}
@@ -38,7 +38,7 @@ FileList={
 	},
 	addDir:function(name,size,lastModified){
 		var html='<tr data-file="'+name+'" data-type="dir" data-size="'+size+'">';
-		html+='<td class="filename"><input type="checkbox" /><a class="name" style="background-image:url(img/folder.png)" href="index.php?dir='+$('#dir').val()+'/'+name+'">'+name+'</a></td>';
+		html+='<td class="filename" style="background-image:url(img/folder.png)"><input type="checkbox" /><a class="name" href="index.php?dir='+$('#dir').val()+'/'+name+'">'+name+'</a></td>';
 		if(size!='Pending'){
 			simpleSize=simpleFileSize(size);
 		}else{
@@ -103,7 +103,7 @@ FileList={
 	loadingDone:function(name){
 		$('tr[data-file="'+name+'"]').data('loading',false);
 		var mime=$('tr[data-file="'+name+'"]').data('mime');
-		$('tr[data-file="'+name+'"] td.filename a').attr('style','background-image:url('+getMimeIcon(mime)+')');
+		$('tr[data-file="'+name+'"] td.filename').attr('style','background-image:url('+getMimeIcon(mime)+')');
 		$('tr[data-file="'+name+'"] td.filename').draggable(dragOptions);
 	},
 	isLoading:function(name){
diff --git a/files/templates/part.list.php b/files/templates/part.list.php
index 93ed70990b76e99aef3598df4140699950cb59d7..5051c19949a3378f127c88dd0b2300980292f081 100644
--- a/files/templates/part.list.php
+++ b/files/templates/part.list.php
@@ -7,9 +7,9 @@
 			$relative_date_color = round((time()-$file['mtime'])/60/60/24*14); // the older the file, the brighter the shade of grey; days*14
 			if($relative_date_color>200) $relative_date_color = 200; ?>
 			<tr data-file="<?php echo $file['name'];?>" data-type="<?php echo ($file['type'] == 'dir')?'dir':'file'?>" data-mime="<?php echo $file['mime']?>" data-size='<?php echo $file['size'];?>'>
-				<td class="filename">
+				<td class="filename" style="background-image:url(<?php if($file['type'] == 'dir') echo mimetype_icon('dir'); else echo mimetype_icon($file['mime']); ?>)">
 					<input type="checkbox" />
-					<a class="name" style="background-image:url(<?php if($file['type'] == 'dir') echo mimetype_icon('dir'); else echo mimetype_icon($file['mime']); ?>)" href="<?php if($file['type'] == 'dir') echo link_to('files', 'index.php?dir='.$file['directory'].'/'.$file['name']); else echo link_to('files', 'download.php?file='.$file['directory'].'/'.$file['name']); ?>" title="">
+					<a class="name" href="<?php if($file['type'] == 'dir') echo link_to('files', 'index.php?dir='.$file['directory'].'/'.$file['name']); else echo link_to('files', 'download.php?file='.$file['directory'].'/'.$file['name']); ?>" title="">
 					<span class="nametext">
 						<?php if($file['type'] == 'dir'):?>
 							<?php echo htmlspecialchars($file['name']);?>
diff --git a/log/appinfo/app.php b/log/appinfo/app.php
index f3ef650704da817e81fb43429897e9a7e83d3469..a3aa19d528d8b13dec159dc766191d73693a169e 100644
--- a/log/appinfo/app.php
+++ b/log/appinfo/app.php
@@ -1,6 +1,6 @@
-<?php
+<?php /*
 
 OC_App::register( array( "order" => 1, "id" => "log", "name" => "Log" ));
 OC_App::addSettingsPage( array( "id" => "log", "order" => 999, "href" => OC_Helper::linkTo( "log", "index.php" ), "name" => "Log", "icon" => OC_Helper::imagePath( "log", "logs.png" )));
 
-?>
+*/ ?>
diff --git a/log/index.php b/log/index.php
index e201411e483a2e0c621f8e75b9540f00aa3379fb..a4fbc36470311d0b2f8ed93e3e218b5e653f2d89 100644
--- a/log/index.php
+++ b/log/index.php
@@ -22,6 +22,7 @@
 */
 
 //require_once('../../config/config.php');
+/*
 require_once('../lib/base.php');
 
 if( !OC_User::isLoggedIn()){
@@ -103,4 +104,4 @@ $tmpl->assign( 'size', $pageSize );
 $tmpl->assign( 'showActions', $showActions );
 $tmpl->printPage();
 
-?>
+*/ ?>
diff --git a/log/templates/index.php b/log/templates/index.php
index 2756332f519eee4561efc25f8b48b11e62d333d2..863ac73fdbb70ede782eb724163d540bf9464895 100644
--- a/log/templates/index.php
+++ b/log/templates/index.php
@@ -1,4 +1,4 @@
-<div class="controls">
+<?php /*<div class="controls">
 	<form id="logs_options" method='post'>
 		<p>
 			<span><?php echo $l->t( 'Filter:' ); ?></span>
@@ -50,5 +50,4 @@
 		</p>
 	</form>
 </div>
-
-
+*/ ?>
diff --git a/search/css/results.css b/search/css/results.css
index e61bf419b355a622e5db4931917cf754dfa2706e..c3147451e4a59fff858dd3fa65d3a9f33d704f9e 100644
--- a/search/css/results.css
+++ b/search/css/results.css
@@ -1,9 +1,9 @@
-#searchresults { position:fixed; top:3.3em; right:0; z-index:50; background-color:white; border:1px solid black; margin-bottom:3em; overflow:auto; max-height:80%; width:40em; }
-#searchresults table{ width:100%; table-layout:fixed; top:1em;border-spacing:0}
-#searchresults td{padding-right:0.3em;padding-left:0.3em;vertical-align:top}
-#searchresults td.result div.text{padding-left:1em;}
-#searchresults div.text,div.name{width:30em; white-space:normal}
-#searchresults td.result{width:30em;}
-#searchresults td.result *{cursor:pointer}
-#searchresults td.type{width:7em;text-align:right; border-right:1px solid #aaa;border-bottom:none}
-#searchresults tr.current{background-color:#ddd}
+#searchresults { list-style:none; position:fixed; top:3.5em; right:0; z-index:100; background-color:#fff; overflow:hidden; text-overflow:ellipsis; max-height:80%; width:26.5em; padding-bottom:1em; -moz-box-shadow:0 0 10px #000; -webkit-box-shadow:0 0 10px #000; box-shadow:0 0 10px #000; -moz-border-radius-bottomleft:1em; -webkit-border-bottom-left-radius:1em; border-bottom-left-radius:1em; }
+#searchresults li.resultHeader { font-size:1.2em; font-weight:bold; border-bottom:solid 1px #CCC; padding:.2em; background-color:#eee; }
+#searchresults li.result { margin-left:2em; }
+#searchresults table { width:100%; table-layout:fixed; top:0; border-spacing:0; }
+#searchresults td { padding:0 .3em; vertical-align:top; }
+#searchresults td.result div.text { padding-left:1em; white-space:nowrap; }
+#searchresults td.result * { cursor:pointer; }
+#searchresults td.type { width:3.5em; text-align:right; border-right:1px solid #aaa; border-bottom:none; font-weight:bold; }
+#searchresults tr.current { background-color:#ddd; }
diff --git a/search/css/search.css b/search/css/search.css
deleted file mode 100644
index df0712be03fdfd799f804c226363fef210d7eca1..0000000000000000000000000000000000000000
--- a/search/css/search.css
+++ /dev/null
@@ -1,17 +0,0 @@
-#searchresults{
-	margin: 2em;
-	list-style:none;
-	border: solid 1px #CCC;
-}
-
-#searchresults li.resultHeader{
-	font-size:1.2em;
-	font-weight:bold;
-	border-bottom: solid 1px #CCC;
-	padding:0.2em;
-	background-color:#eee;
-}
-
-#searchresults li.result{
-	margin-left:2em;
-}
\ No newline at end of file