diff --git a/src/com/android/browser/AddBookmarkPage.java b/src/com/android/browser/AddBookmarkPage.java
index f5b1ff9..6a6fb3b 100644
--- a/src/com/android/browser/AddBookmarkPage.java
+++ b/src/com/android/browser/AddBookmarkPage.java
@@ -243,6 +243,7 @@
             Thread t = new Thread(new SaveBookmarkRunnable(msg));
             t.start();
             setResult(RESULT_OK);
+            LogTag.logBookmarkAdded(url, "bookmarkview");
         }
         return true;
     }
diff --git a/src/com/android/browser/EventLogTags.logtags b/src/com/android/browser/EventLogTags.logtags
index c9bb5b0..b3834cf 100644
--- a/src/com/android/browser/EventLogTags.logtags
+++ b/src/com/android/browser/EventLogTags.logtags
@@ -3,12 +3,13 @@
 option java_package com.android.browser
 
 # This event is logged when a user adds a new bookmark. This could just be a boolean,
-# but if lots of users add the same bookmark it could be a default bookmark on the browser
-70103 browser_bookmark_added (url|3)
+# but if lots of users add the same bookmark it could be a default bookmark on the browser.
+# Second parameter is where the bookmark was added from, currently history or bookmarks view.
+70103 browser_bookmark_added (url|3), (where|3)
 
 # This event is logged after a page has finished loading. It is sending back the page url,
 # and how long it took to load the page. Could maybe also tell the kind of connection (2g, 3g, WiFi)?
 70104 browser_page_loaded (url|3), (time|2|3)
 
-# This event is logged when the user navigates to a new page, sending the time spent on the current page
+# This event is logged when the user navigates to a new page, sending the time spent on the current page.
 70105 browser_timeonpage (url|3), (time|2|3)
diff --git a/src/com/android/browser/HistoryItem.java b/src/com/android/browser/HistoryItem.java
index 51cb026..72e1b19 100644
--- a/src/com/android/browser/HistoryItem.java
+++ b/src/com/android/browser/HistoryItem.java
@@ -47,6 +47,7 @@
                 if (isChecked) {
                     Bookmarks.addBookmark(mContext,
                             mContext.getContentResolver(), mUrl, getName(), null, true);
+                    LogTag.logBookmarkAdded(mUrl, "history");
                 } else {
                     Bookmarks.removeFromBookmarks(mContext,
                             mContext.getContentResolver(), mUrl, getName());
diff --git a/src/com/android/browser/LogTag.java b/src/com/android/browser/LogTag.java
index 9658c6c..2be3134 100644
--- a/src/com/android/browser/LogTag.java
+++ b/src/com/android/browser/LogTag.java
@@ -25,20 +25,23 @@
      * Log when the user is adding a new bookmark.
      *
      * @param url the url of the new bookmark.
+     * @param where the location from where the bookmark was added
      */
-    public static void logBookmarkAdded(String url) {
-        EventLog.writeEvent(EventLogTags.BROWSER_BOOKMARK_ADDED, url);
+    public static void logBookmarkAdded(String url, String where) {
+        EventLog.writeEvent(EventLogTags.BROWSER_BOOKMARK_ADDED, url + "|"
+            + where);
     }
 
     /**
      * Log when a page has finished loading with how much
      * time the browser used to load the page.
      *
-     * @param url the heartbeat interval used.
+     * @param url the url of that page that finished loading.
      * @param duration the time the browser spent loading the page.
      */
     public static void logPageFinishedLoading(String url, long duration) {
-        EventLog.writeEvent(EventLogTags.BROWSER_BOOKMARK_ADDED, url);
+        EventLog.writeEvent(EventLogTags.BROWSER_BOOKMARK_ADDED, url + "|"
+            + duration);
     }
 
     /**
@@ -48,6 +51,7 @@
      * @param duration the time spent on the webpage.
      */
     public static void logTimeOnPage(String url, long duration) {
-        EventLog.writeEvent(EventLogTags.BROWSER_BOOKMARK_ADDED, url);
+        EventLog.writeEvent(EventLogTags.BROWSER_BOOKMARK_ADDED, url + "|"
+            + duration);
     }
 }
