diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 96c3d01b2..e5388a4be 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -71,7 +71,7 @@ const AlphabeticalView = new Lang.Class({
         if (this._appIcons[id] !== undefined)
             return;
 
-        let appIcon = new AppWellIcon(app);
+        let appIcon = new AppIcon(app);
         let pos = Util.insertSorted(this._allApps, app, function(a, b) {
             return a.compare_by_name(b);
         });
@@ -250,30 +250,14 @@ const AppSearchProvider = new Lang.Class({
 
     createResultActor: function (resultMeta, terms) {
         let app = resultMeta['id'];
-        let icon = new AppWellIcon(app);
+        let icon = new AppIcon(app);
         return icon.actor;
     }
 });
 
+
 const AppIcon = new Lang.Class({
     Name: 'AppIcon',
-    Extends: IconGrid.BaseIcon,
-
-    _init : function(app, params) {
-        this.app = app;
-
-        let label = this.app.get_name();
-
-        this.parent(label, params);
-    },
-
-    createIcon: function(iconSize) {
-        return this.app.create_icon_texture(iconSize);
-    }
-});
-
-const AppWellIcon = new Lang.Class({
-    Name: 'AppWellIcon',
 
     _init : function(app, iconParams) {
         this.app = app;
@@ -285,7 +269,11 @@ const AppWellIcon = new Lang.Class({
                                      y_fill: true });
         this.actor._delegate = this;
 
-        this.icon = new AppIcon(app, iconParams);
+        if (!iconParams)
+            iconParams = {};
+
+        iconParams['createIcon'] = Lang.bind(this, this._createIcon);
+        this.icon = new IconGrid.BaseIcon(app.get_name(), iconParams);
         this.actor.set_child(this.icon.actor);
 
         this.actor.label_actor = this.icon.label;
@@ -328,6 +316,10 @@ const AppWellIcon = new Lang.Class({
         this._removeMenuTimeout();
     },
 
+    _createIcon: function(iconSize) {
+        return this.app.create_icon_texture(iconSize);
+    },
+
     _removeMenuTimeout: function() {
         if (this._menuTimeoutId > 0) {
             Mainloop.source_remove(this._menuTimeoutId);
@@ -453,7 +445,7 @@ const AppWellIcon = new Lang.Class({
         return this.icon.icon;
     }
 });
-Signals.addSignalMethods(AppWellIcon.prototype);
+Signals.addSignalMethods(AppIcon.prototype);
 
 const AppIconMenu = new Lang.Class({
     Name: 'AppIconMenu',
diff --git a/js/ui/dash.js b/js/ui/dash.js
index c1385b9be..3a0d611ac 100644
--- a/js/ui/dash.js
+++ b/js/ui/dash.js
@@ -22,7 +22,7 @@ const DASH_ITEM_LABEL_HIDE_TIME = 0.1;
 const DASH_ITEM_HOVER_TIMEOUT = 300;
 
 function getAppFromSource(source) {
-    if (source instanceof AppDisplay.AppWellIcon) {
+    if (source instanceof AppDisplay.AppIcon) {
         return source.app;
     } else {
         return null;
@@ -486,9 +486,9 @@ const Dash = new Lang.Class({
     },
 
     _createAppItem: function(app) {
-        let appIcon = new AppDisplay.AppWellIcon(app,
-                                                 { setSizeManually: true,
-                                                   showLabel: false });
+        let appIcon = new AppDisplay.AppIcon(app,
+                                             { setSizeManually: true,
+                                               showLabel: false });
         appIcon._draggable.connect('drag-begin',
                                    Lang.bind(this, function() {
                                        appIcon.actor.opacity = 50;
@@ -505,7 +505,7 @@ const Dash = new Lang.Class({
         let item = new DashItemContainer();
         item.setChild(appIcon.actor);
 
-        // Override default AppWellIcon label_actor, now the
+        // Override default AppIcon label_actor, now the
         // accessible_name is set at DashItemContainer.setLabelText
         appIcon.actor.label_actor = null;
         item.setLabelText(app.get_name());