diff --git a/my/indexsys.php b/my/indexsys.php
index 70577d7..c4410cd 100644
--- a/my/indexsys.php
+++ b/my/indexsys.php
@@ -60,7 +60,7 @@ $PAGE->set_title($header);
 $PAGE->set_heading($header);
 $PAGE->blocks->add_region('content');
 
-// TODO: Make the page be selected properly in the Settings block
+admin_externalpage_setup('mypage');
 
 // Get the My Moodle page info.  Should always return something unless the database is broken.
 if (!$currentpage = my_get_page(0, MY_PAGE_PRIVATE)) {
@@ -98,11 +98,6 @@ if ($PAGE->user_allowed_editing()) {
     $USER->editing = $edit = 0;
 }
 
-// HACK WARNING!  This loads up all this page's blocks in the system context
-if ($currentpage->userid == 0) {
-    $CFG->blockmanagerclass = 'my_syspage_block_manager';
-}
-
 
 echo $OUTPUT->header();
 
diff --git a/my/lib.php b/my/lib.php
index 46183a6..cd0855e 100644
--- a/my/lib.php
+++ b/my/lib.php
@@ -81,6 +81,7 @@ function my_copy_page($userid, $private=MY_PAGE_PRIVATE, $pagetype='my-index') {
 
     $blockinstances = $DB->get_records('block_instances', array('parentcontextid' => $systemcontext->id,
                                                                 'pagetypepattern' => $pagetype,
+                                                                'showinsubcontexts' => 0, // only copy non-sticky blocks
                                                                 'subpagepattern' => $systempage->id));
     foreach ($blockinstances as $instance) {
         unset($instance->id);
diff --git a/user/profilesys.php b/user/profilesys.php
index f551f0d..b8561a5 100644
--- a/user/profilesys.php
+++ b/user/profilesys.php
@@ -54,7 +54,7 @@ $PAGE->set_title($header);
 $PAGE->set_heading($header);
 $PAGE->blocks->add_region('content');
 
-// TODO: Make the page be selected properly in the Settings block
+admin_externalpage_setup('profilepage');
 
 // Get the Public Profile page info.  Should always return something unless the database is broken.
 if (!$currentpage = my_get_page(0, MY_PAGE_PUBLIC)) {
@@ -92,17 +92,9 @@ if ($PAGE->user_allowed_editing()) {
     $USER->editing = $edit = 0;
 }
 
-// HACK WARNING!  This loads up all this page's blocks in the system context
-if ($currentpage->userid == 0) {
-    $CFG->blockmanagerclass = 'my_syspage_block_manager';
-}
-
 
 echo $OUTPUT->header();
 
 echo $OUTPUT->blocks_for_region('content');
 
-print_object($currentpage);
-print_object($context);
-
 echo $OUTPUT->footer();
