diff --git a/menu_example/menu_example.module b/menu_example/menu_example.module
index b77dbd3..0087f0b 100644
--- a/menu_example/menu_example.module
+++ b/menu_example/menu_example.module
@@ -118,7 +118,36 @@ function menu_example_menu() {
     // Higher weights are "heavier", dropping to the bottom of the menu.
     'weight' => 10,
   );
+  
+  /*
+   * We will define our own "access callback" function i.e is "menu_example_custom_access",
+   * rather than the default 'user_access'.
+   * 
+   * This function takes takes permissions as arguments and checks if the user has the permissions required
+   * to view the page. 
+   * 
+   * The permissions are set using hook_permisions().
+   * 
+   * This is just an example the permissions are set accoeding to our need and convinience.
+   */
+  $items['menu_example/custom_access'] = array(
+    'title' => 'Custom Access Example',
+     'page callback' => '_menu_example_menu_page',
+    'page arguments' => array(t('A menu item that requires the "access protected menu example" and "custom access" permission is at <a href="!link">menu_example/custom_access/page</a>', array('!link' => url('menu_example/custom_access/page')))),
+    'access callback' => TRUE,
+    'expanded' => TRUE,
+    'weight' => -5,
+  );
 
+  $items['menu_example/custom_access/page'] = array(
+    'title' => 'Custom Access Menu Item',
+    'description' => 'This menu entry will not show and the page will not be accessible without the "access protected menu example" and "custom access" permission.',
+    'page callback' => '_menu_example_menu_page',
+    'page arguments' => array(t('This menu entry will not show and the page will not be accessible without the "access protected menu example" and "custom access" permission and another interesting thing is that we used a self-defined "access callback" function rather than "user_access".')),
+    'access callback' => 'menu_example_custom_access',
+    'access arguments' => array('access protected menu example','custom access'),
+    );
+  
   // A menu router entry with no menu link. This could be used any time we
   // don't want the user to see a link in the menu. Otherwise, it's the same
   // as the "simplest" entry above. MENU_CALLBACK is used for all menu items
@@ -336,10 +365,29 @@ function menu_example_permission() {
     'access protected menu example' =>  array(
       'title' => t('Access the protected menu example'),
     ),
+    'custom access' => array(
+      'title' => t('Custom Access'),
+    )
   );
 
 }
 
+/*
+ * Access callback that checks multiple permissions. 
+ * 
+ * Takes a list of permissions and requires that all return
+ * TRUE.
+ */
+
+function menu_example_custom_access(){
+  foreach (func_get_args() as $permission){
+    if (!user_access($permission)){
+      return FALSE;
+    }
+  }
+  return TRUE;
+}
+
 /**
  * Utility function to provide mappings from integers to some strings.
  * This would normally be some database lookup to get an object or array from
