diff --git a/src/jarabe/view/viewsource.py b/src/jarabe/view/viewsource.py
index ff98dcb..5625857 100644
--- a/src/jarabe/view/viewsource.py
+++ b/src/jarabe/view/viewsource.py
@@ -19,6 +19,7 @@
 import os
 import subprocess
 import logging
+import shutil
 from gettext import gettext as _
 
 import gobject
@@ -38,8 +39,9 @@ from sugar.bundle.activitybundle import ActivityBundle
 from sugar.datastore import datastore
 from sugar import mime
 from sugar import profile
-from jarabe.view.customizebundle import customize_activity_info, \
-    generate_bundle
+
+from jarabe.view.customizebundle import customize_activity_info
+from jarabe.view.customizebundle import generate_bundle
 
 
 _EXCLUDE_EXTENSIONS = ('.pyc', '.pyo', '.so', '.o', '.a', '.la', '.mo', '~',
@@ -210,7 +212,7 @@ class ViewSource(gtk.Window):
 class DocumentButton(RadioToolButton):
     __gtype_name__ = 'SugarDocumentButton'
 
-    def __init__(self, file_name, document_path, title, bundle=False):
+    def __init__(self, file_name, document_path, title):
         RadioToolButton.__init__(self)
 
         self._document_path = document_path
@@ -227,41 +229,16 @@ class DocumentButton(RadioToolButton):
         self.set_icon_widget(icon)
         icon.show()
 
-        if bundle:
-            menu_item = MenuItem(_('Duplicate'))
-            icon = Icon(icon_name='edit-duplicate',
-                        icon_size=gtk.ICON_SIZE_MENU,
-                        xo_color=XoColor(self._color))
-            menu_item.connect('activate', self.__copy_to_home_cb)
-        else:
-            menu_item = MenuItem(_('Keep'))
-            icon = Icon(icon_name='document-save',
-                        icon_size=gtk.ICON_SIZE_MENU,
-                        xo_color=XoColor(self._color))
-            menu_item.connect('activate', self.__keep_in_journal_cb)
-
+        menu_item = MenuItem(_('Keep'))
+        icon = Icon(icon_name='document-save',
+                    icon_size=gtk.ICON_SIZE_MENU,
+                    xo_color=XoColor(self._color))
+        menu_item.connect('activate', self.__keep_in_journal_cb)
         menu_item.set_image(icon)
 
         self.props.palette.menu.append(menu_item)
         menu_item.show()
 
-    def __copy_to_home_cb(self, menu_item):
-        ''' Make a local copy of the activity bundle in
-        $HOME/Activities as [NICK]- '''
-
-        # TODO: Check to see if a copy of activity already exisits
-        # If so, alert the user before overwriting.
-        home_activities = os.path.join(os.environ['HOME'], 'Activities')
-        nick = profile.get_nick_name().replace(' ', '_')
-        new_bundle_name = '%s_%s' % (nick, self._document_path.split('/')[-1])
-        command_line = ['cp', '-r', self._document_path,
-                        os.path.join(home_activities, new_bundle_name)]
-        _logger.debug(subprocess.call(command_line))
-
-        activity_name = customize_activity_info(nick, home_activities,
-                                                new_bundle_name)
-        generate_bundle(nick, activity_name, home_activities, new_bundle_name)
-
     def __keep_in_journal_cb(self, menu_item):
         mime_type = mime.get_from_file_name(self._document_path)
         if mime_type == 'application/octet-stream':
@@ -290,6 +267,53 @@ class DocumentButton(RadioToolButton):
         self._jobject.destroy()
 
 
+class ActivityButton(RadioToolButton):
+    __gtype_name__ = 'SugarActivityButton'
+
+    def __init__(self, file_name, bundle_path, title):
+        RadioToolButton.__init__(self)
+
+        self._bundle_path = bundle_path
+        self._title = title
+        self._jobject = None
+
+        self.props.tooltip = _('Activity Bundle Source')
+
+        icon = Icon(file=file_name,
+                    icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR,
+                    fill_color=style.COLOR_TRANSPARENT.get_svg(),
+                    stroke_color=style.COLOR_WHITE.get_svg())
+        self.set_icon_widget(icon)
+        icon.show()
+
+        menu_item = MenuItem(_('Duplicate'))
+        client = gconf.client_get_default()
+        color = client.get_string('/desktop/sugar/user/color')
+        icon = Icon(icon_name='edit-duplicate',
+                    icon_size=gtk.ICON_SIZE_MENU,
+                    xo_color=XoColor(color))
+        menu_item.connect('activate', self.__copy_to_home_cb)
+        menu_item.set_image(icon)
+
+        self.props.palette.menu.append(menu_item)
+        menu_item.show()
+
+    def __copy_to_home_cb(self, menu_item):
+        ''' Make a local copy of the activity bundle in
+        $HOME/Activities as [NICK]- '''
+
+        # TODO: Check to see if a copy of activity already exisits
+        # If so, alert the user before overwriting.
+        home_activities = os.path.join(os.environ['HOME'], 'Activities')
+        nick = profile.get_nick_name().replace(' ', '_')
+        new_bundle_name = '%s_%s' % (nick, self._bundle_path.split('/')[-1])
+        shutil.copytree(self._bundle_path,
+                        os.path.join(home_activities, new_bundle_name))
+        activity_name = customize_activity_info(nick, home_activities,
+                                                new_bundle_name)
+        generate_bundle(nick, activity_name, home_activities, new_bundle_name)
+
+
 class Toolbar(gtk.Toolbar):
     __gtype_name__ = 'SugarViewSourceToolbar'
 
@@ -318,17 +342,9 @@ class Toolbar(gtk.Toolbar):
             self._add_separator()
 
         if bundle_path is not None and os.path.exists(bundle_path):
-            activity_button = DocumentButton(file_name, bundle_path, title,
-                                             bundle=True)
-            icon = Icon(file=file_name,
-                        icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR,
-                        fill_color=style.COLOR_TRANSPARENT.get_svg(),
-                        stroke_color=style.COLOR_WHITE.get_svg())
-            activity_button.set_icon_widget(icon)
-            icon.show()
+            activity_button = ActivityButton(file_name, bundle_path, title)
             if document_button is not None:
                 activity_button.props.group = document_button
-            activity_button.props.tooltip = _('Activity Bundle Source')
             activity_button.connect('toggled', self.__button_toggled_cb,
                                     bundle_path)
             self.insert(activity_button, -1)
