diff --git a/src/com/android/launcher3/ButtonDropTarget.java b/src/com/android/launcher3/ButtonDropTarget.java
index e466e10..019f86c 100644
--- a/src/com/android/launcher3/ButtonDropTarget.java
+++ b/src/com/android/launcher3/ButtonDropTarget.java
@@ -75,7 +75,6 @@
                 return drawables[i];
             }
         }
-        System.out.println("No drawable, returning null " + this);
         return null;
     }
 
diff --git a/src/com/android/launcher3/InfoDropTarget.java b/src/com/android/launcher3/InfoDropTarget.java
index 254d9bf..374238c 100644
--- a/src/com/android/launcher3/InfoDropTarget.java
+++ b/src/com/android/launcher3/InfoDropTarget.java
@@ -21,7 +21,6 @@
 import android.content.res.ColorStateList;
 import android.content.res.Configuration;
 import android.content.res.Resources;
-import android.graphics.drawable.Drawable;
 import android.graphics.drawable.TransitionDrawable;
 import android.util.AttributeSet;
 import android.view.View;
@@ -50,19 +49,6 @@
         Resources r = getResources();
         mHoverColor = r.getColor(R.color.info_target_hover_tint);
         mDrawable = (TransitionDrawable) getCurrentDrawable();
-
-        if (mDrawable == null) {
-            System.out.println("onFinishInflate -- drawable null");
-        }
-
-        // DEBUG CODE:
-        Drawable normal = r.getDrawable(R.drawable.ic_launcher_info_normal_holo);
-        Drawable active = r.getDrawable(R.drawable.ic_launcher_info_active_holo);
-        Drawable selector = r.getDrawable(R.drawable.info_target_selector);
-        System.out.println("Normal: " + normal);
-        System.out.println("Active: " + active);
-        System.out.println("Selector: " + selector);
-
         if (null != mDrawable) {
             mDrawable.setCrossFadeEnabled(true);
         }
@@ -107,14 +93,8 @@
             isVisible = false;
         }
 
-        if (mDrawable == null) {
-            System.out.println("onDragStart -- drawable null");
-        }
-
         mActive = isVisible;
-        if (mDrawable != null) {
-            mDrawable.resetTransition();
-        }
+        mDrawable.resetTransition();
         setTextColor(mOriginalTextColor);
         ((ViewGroup) getParent()).setVisibility(isVisible ? View.VISIBLE : View.GONE);
     }
@@ -128,9 +108,7 @@
     public void onDragEnter(DragObject d) {
         super.onDragEnter(d);
 
-        if (mDrawable != null) {
-            mDrawable.startTransition(mTransitionDuration);
-        }
+        mDrawable.startTransition(mTransitionDuration);
         setTextColor(mHoverColor);
     }
 
