diff --git a/java/src/com/android/inputmethod/latin/makedict/MakedictLog.java b/java/src/com/android/inputmethod/latin/makedict/MakedictLog.java
index cdc04af..1281c7e 100644
--- a/java/src/com/android/inputmethod/latin/makedict/MakedictLog.java
+++ b/java/src/com/android/inputmethod/latin/makedict/MakedictLog.java
@@ -16,28 +16,32 @@
 
 package com.android.inputmethod.latin.makedict;
 
+import android.util.Log;
+
 /**
  * Wrapper to redirect log events to the right output medium.
  */
 public class MakedictLog {
-    private static final boolean DEBUG = false;
+    private static final boolean DBG = false;
+    private static final String TAG = MakedictLog.class.getSimpleName();
 
-    private static void print(String message) {
-        if (DEBUG) {
-            System.out.println(message);
+    public static void d(String message) {
+        if (DBG) {
+            Log.d(TAG, message);
         }
     }
 
-    public static void d(String message) {
-        print(message);
-    }
-    public static void e(String message) {
-        print(message);
-    }
     public static void i(String message) {
-        print(message);
+        if (DBG) {
+            Log.i(TAG, message);
+        }
     }
+
     public static void w(String message) {
-        print(message);
+        Log.w(TAG, message);
+    }
+
+    public static void e(String message) {
+        Log.e(TAG, message);
     }
 }
diff --git a/tools/makedict/Android.mk b/tools/makedict/Android.mk
index dcfad19..2f0957a 100644
--- a/tools/makedict/Android.mk
+++ b/tools/makedict/Android.mk
@@ -18,8 +18,10 @@
 
 MAKEDICT_CORE_SOURCE_DIRECTORY := ../../java/src/com/android/inputmethod/latin/makedict
 
-LOCAL_SRC_FILES := $(call all-java-files-under,$(MAKEDICT_CORE_SOURCE_DIRECTORY))
-LOCAL_SRC_FILES += $(call all-java-files-under,src)
+LOCAL_MAIN_SRC_FILES := $(call all-java-files-under,$(MAKEDICT_CORE_SOURCE_DIRECTORY))
+LOCAL_TOOL_SRC_FILES := $(call all-java-files-under,src)
+LOCAL_SRC_FILES := $(LOCAL_TOOL_SRC_FILES) \
+        $(filter-out $(addprefix %, $(LOCAL_TOOL_SRC_FILES)), $(LOCAL_MAIN_SRC_FILES))
 LOCAL_SRC_FILES += $(call all-java-files-under,tests)
 LOCAL_JAR_MANIFEST := etc/manifest.txt
 LOCAL_MODULE_TAGS := eng
diff --git a/tools/makedict/src/com/android/inputmethod/latin/makedict/MakedictLog.java b/tools/makedict/src/com/android/inputmethod/latin/makedict/MakedictLog.java
new file mode 100644
index 0000000..1ab9f42
--- /dev/null
+++ b/tools/makedict/src/com/android/inputmethod/latin/makedict/MakedictLog.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.android.inputmethod.latin.makedict;
+
+/**
+ * Wrapper to redirect log events to the right output medium.
+ */
+public class MakedictLog {
+    private static void print(String message) {
+        System.out.println(message);
+    }
+
+    public static void d(String message) {
+        print(message);
+    }
+
+    public static void i(String message) {
+        print(message);
+    }
+
+    public static void w(String message) {
+        print(message);
+    }
+
+    public static void e(String message) {
+        print(message);
+    }
+}
