diff --git a/app/assets/javascripts/application/autocomplete.js b/app/assets/javascripts/application/autocomplete.js
index 3f8ef4723bcf61fac02b1415f67b87af70f4aa81..916308ff14e66d624ff82f32d0e6a014686baa1b 100644
--- a/app/assets/javascripts/application/autocomplete.js
+++ b/app/assets/javascripts/application/autocomplete.js
@@ -1,16 +1,24 @@
 $(document).ready(function() {
-	$('#search input[name=query]').autocomplete({
-		minLength: 3,
-		source: function (request, response) {
-			$.ajax({
-				url: "/autocomplete",
-				data: { query: request.term, search_class: $('select[name="search_class"]').val()},
-				dataType: "json",
-				success: response,
-				error: function () {
-					response([]);
-				}
-			});
-		}
-	});
+    $('#search input[name=query]').autocomplete({
+        minLength: 3,
+        source: function (request, response) {
+            $.ajax({
+                url: "/autocomplete",
+                data: { query: request.term, search_class: $('select[name="search_class"]').val()},
+                dataType: "json",
+                success: response,
+                error: function () {
+                    response([]);
+                }
+            });
+        },
+        select: function(event, ui) {
+            window.location.href = ui.item.url;
+        }
+    }).data("uiAutocomplete")._renderItem = function(ul, item) {
+        return $("<li></li>")
+            .append("<img class='autocomplete' src='" + item.thumbnail + "'>")
+            .append("<a>"+ item.name +"</a>" )
+            .appendTo(ul);
+    };
 });
diff --git a/app/assets/stylesheets/application/search.scss b/app/assets/stylesheets/application/search.scss
index 454ef0a722430e915d11f6eb59ff17c3548e9364..25c956f57d11948fc789e2751467998b794e2666 100644
--- a/app/assets/stylesheets/application/search.scss
+++ b/app/assets/stylesheets/application/search.scss
@@ -2,6 +2,13 @@
   background-color:green;
 }
 
+.autocomplete {
+  width: 56px;
+  height: 32px;
+  border: 0;
+  margin-right: 8px;
+}
+
 .search-sidebar {
   margin-top: 40px;
   display: none;
diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb
index bc28a13207a36dea813cc6971aa23c551b5608a1..c4d440da9d34846f709ee52d9c8e3f84655b7e88 100644
--- a/app/controllers/search_controller.rb
+++ b/app/controllers/search_controller.rb
@@ -1,5 +1,7 @@
 class SearchController < ApplicationController
   
+  include LearningObjectsHelper
+
   def index
 
     @types = LearningObject.object_types
@@ -18,9 +20,9 @@ class SearchController < ApplicationController
     when "LearningObject"
       @result = LearningObject.search params[:query], where: where_hash(params), order: lo_order_hash(params), page: params[:page] || 1, per_page: 10
     when "Collection"
-      @result = Collection.search params[:query], where: {privacy: "public"}, order: col_order_hash(params), page: params[:page]
+      @result = Collection.search params[:query], where: {privacy: "public"}, order: col_order_hash(params), page: params[:page] || 1, per_page: 10
     when "User"
-      @result = User.search params[:query], order: user_order_hash(params), page: params[:page]
+      @result = User.search params[:query], order: user_order_hash(params), page: params[:page] || 1, per_page: 10
     else 
       raise "Wrong search class parameter"
     end
@@ -29,32 +31,52 @@ class SearchController < ApplicationController
   end
 
   def autocomplete
+    response = []
     case params[:search_class]
     when "LearningObject"
-      render json: LearningObject.search(params[:query], {
+      los = LearningObject.search(params[:query], {
         fields: ['name^5', 'description', 'author'],
         limit: 10,
-        load: false,
         misspellings: { below: 5 }
-      }).map(&:name)
+      })
+      los.each do |lo|
+        hash = {}
+        hash["name"] = lo.name
+        hash["thumbnail"] = "/assets/"+learning_object_thumbnail(lo)
+        hash["url"] = url_for([lo, :only_path => false])
+        response <<  hash
+      end
     when "Collection"
-      render json: Collection.search(params[:query], {
+      cols = Collection.search(params[:query], {
         where: {privacy: "public"},
         fields: ['name^5', 'description', 'owner'],
         limit: 10,
-        load: false,
         misspellings: { below: 5 }
-      }).map(&:name)
+      })
+      cols.each do |col|
+        hash = {}
+        hash["name"] = col.name
+        hash["thumbnail"] = "/assets/icons/collection"
+        hash["url"] = url_for([col, :only_path => false])
+        response <<  hash
+      end
     when "User"
-      render json: User.search(params[:query], {
+      users = User.search(params[:query], {
         fields: ['name'],
         limit: 10,
-        load: false,
         misspellings: { below: 5 }
-      }).map(&:name)
+      })
+      users.each do |user|
+        hash = {}
+        hash["name"] = user.name
+        hash["thumbnail"] = user.avatar.url(:thumb)
+        hash["url"] = url_for([user, :only_path => false])
+        response <<  hash
+      end
     else 
       raise "Wrong search class parameter"
     end
+    render json: response
   end
 
   private
diff --git a/app/helpers/learning_objects_helper.rb b/app/helpers/learning_objects_helper.rb
index 391b3e7512b7c99e723391e98391d32e1c3c5cc0..4dfa144645e250f21132b62d805478ab5a3faa95 100644
--- a/app/helpers/learning_objects_helper.rb
+++ b/app/helpers/learning_objects_helper.rb
@@ -9,7 +9,7 @@ module LearningObjectsHelper
       when 'PDF' then
         "<iframe src=\"/pdfjs/web/viewer.html?file=#{learning_object.retrieve_link }\" style=\"border: 0 \" width=\"125%\" height=\"280\" frameborder=\"0\" scrolling=\"no\"></iframe>".html_safe
       else
-        learning_object_thumbnail learning_object, "large"
+        image_tag learning_object_thumbnail(learning_object, "large"), alt: learning_object_title(learning_object), class: "thumbnail"
     end
   end
 
@@ -44,7 +44,7 @@ module LearningObjectsHelper
     else
       thumbnail = learning_object.thumbnail
     end
-    image_tag thumbnail, alt: learning_object_title(learning_object), class: "thumbnail"
+    thumbnail
   end
 
   def learning_object_title(learning_object)
diff --git a/app/views/learning_objects/_learning_object_horizontal.erb b/app/views/learning_objects/_learning_object_horizontal.erb
index b4b8f123dbd917baf50a748c4d743292a728fe69..6538596f77807cc636867b04e0d45c400a518539 100644
--- a/app/views/learning_objects/_learning_object_horizontal.erb
+++ b/app/views/learning_objects/_learning_object_horizontal.erb
@@ -4,7 +4,7 @@
     <!-- <div class="col-md-5"> -->
       <div class="learning-object-thumbnail">
         <%= link_to link do
-          learning_object_thumbnail learning_object
+          image_tag learning_object_thumbnail(learning_object), alt: learning_object_title(learning_object), class: "thumbnail"
         end %>
 
         <% if user_signed_in? %>
diff --git a/app/views/learning_objects/_learning_object_vertical.erb b/app/views/learning_objects/_learning_object_vertical.erb
index 58aada1502d2ae275eced9af1e1f714b09abab78..0e22d59fb5bad7cd65ea3d632fdd7f209ffac1f6 100644
--- a/app/views/learning_objects/_learning_object_vertical.erb
+++ b/app/views/learning_objects/_learning_object_vertical.erb
@@ -2,7 +2,7 @@
   <div class="panel">
     <div class="learning-object-thumbnail">
       <%= link_to learning_object_path(id: learning_object.id) do
-        learning_object_thumbnail learning_object
+        image_tag learning_object_thumbnail(learning_object), alt: learning_object_title(learning_object), class: "thumbnail"
       end %>
       <% if user_signed_in? %>
           <%= render 'learning_objects/actions_buttons', learning_object: learning_object %>