diff --git a/home/page/event_updates/event_updates.js b/home/page/event_updates/event_updates.js
index 7a401de..4ae0857 100644
--- a/home/page/event_updates/event_updates.js
+++ b/home/page/event_updates/event_updates.js
@@ -610,7 +610,7 @@
 	var wrapper = page_body.pages['Event Updates'];
 
 	// get values
-	$c_page('event_updates', 'event_updates', 'get_status_details', user,
+	$c_page('home', 'event_updates', 'get_status_details', user,
 		function(r,rt) { 
 			
 			home_status_bar.render(r.message);
@@ -640,7 +640,7 @@
 		if(r.exc) { msgprint(r.exc); return; }
 		$(pscript.trial_box).slideUp();
 	}
-	$c_page('event_updates','event_updates','convert_to_paid','',callback)	
+	$c_page('home','event_updates','convert_to_paid','',callback)	
 }
 
 // show system message
diff --git a/home/page/my_company/my_company.js b/home/page/my_company/my_company.js
index ea43604..0384788 100644
--- a/home/page/my_company/my_company.js
+++ b/home/page/my_company/my_company.js
@@ -34,7 +34,7 @@
 		+ ' users enabled out of ' + r.message.max_user 
 		+ '. Go to <a href="javascript:pscript.go_to_account_settings()">Account Settings</a> to increase the number of users');
 	}
-	$c_page('my_company', 'my_company', 'get_max_users', '', callback)
+	$c_page('home', 'my_company', 'get_max_users', '', callback)
 }
 
 //
@@ -54,7 +54,7 @@
 		v = d.get_values();
 		if(v) {
 			d.fields_dict.add.input.set_working();
-			$c_page('my_company', 'my_company', 'add_user', v, function(r,rt) {
+			$c_page('home', 'my_company', 'add_user', v, function(r,rt) {
 				if(r.exc) { msgprint(r.exc); return; }
 				else {
 					d.hide();
@@ -99,7 +99,7 @@
 	if(pscript.online_users) {
 		this.make_list();		
 	} else {
-		$c_page('event_updates', 'event_updates', 'get_online_users', '', function(r,rt) {
+		$c_page('home', 'event_updates', 'get_online_users', '', function(r,rt) {
 			pscript.online_users = r.message;
 			me.make_list();
 		})
@@ -333,7 +333,7 @@
 				pscript.myc_refresh()
 				msgprint("User Deleted Successfully");
 			}
-			$c_page('my_company', 'my_company', 'delete_user', {'user': me.uid}, callback);
+			$c_page('home', 'my_company', 'delete_user', {'user': me.uid}, callback);
 		}
 		d.show();
 	}
@@ -354,7 +354,7 @@
 					me.refresh_enable_disable();
 				}
 				this.set_working();
-				$c_page('my_company','my_company', this.innerHTML.toLowerCase()+'_profile',me.profile.name, callback);
+				$c_page('home','my_company', this.innerHTML.toLowerCase()+'_profile',me.profile.name, callback);
 			}, null, null, 1);
 		}
 		if(this.uid==user) $dh(this.status_button); else $di(this.status_button);
@@ -473,7 +473,7 @@
 		// set all messages
 		// as "read" (docstatus = 0)
 		if(user==uid) {
-			$c_page('my_company', 'my_company', 'set_read_all_messages', '', function(r,rt) { });	
+			$c_page('home', 'my_company', 'set_read_all_messages', '', function(r,rt) { });	
 		}
 	}
 	
@@ -505,7 +505,7 @@
 			msgprint('Please write a message first!'); return;
 		}
 		this.post.set_working();
-		$c_page('my_company', 'my_company', 'post_comment', {
+		$c_page('home', 'my_company', 'post_comment', {
 			uid: uid,
 			comment: $(me.input).val(),
 			notify: me.notify_check.checked ? 1 : 0
