diff --git a/app/views/calendars/show.html.erb b/app/views/calendars/show.html.erb
index 4541cc0..7cc7861 100644
--- a/app/views/calendars/show.html.erb
+++ b/app/views/calendars/show.html.erb
@@ -50,7 +50,7 @@
 <% end %>
 
 <% content_for :sidebar do %>
-    <%= render :partial => 'issues/sidebar' %>
-<% end %>
+  <%= render (@project ? 'issues/sidebar' : 'common/cross_sidebar') %>
+<% end -%>
 
 <% html_title(l(:label_calendar)) -%>
diff --git a/app/views/common/_cross_sidebar.html.erb b/app/views/common/_cross_sidebar.html.erb
new file mode 100644
index 0000000..2081aa8
--- /dev/null
+++ b/app/views/common/_cross_sidebar.html.erb
@@ -0,0 +1,32 @@
+<h3><%=l(:label_project_plural) %></h3>
+<%= link_to(l(:label_project_all), {:controller => 'projects'}) %><br />
+<%= call_hook(:view_cross_sidebar_projects_bottom) %>
+
+<h3><%=l(:label_issue_plural)%></h3>
+<% if User.current.allowed_to?(:view_issues, nil, :global => true) -%>
+  <%= link_to(l(:label_issue_view_all), {:controller => 'issues', :set_filter => 1}) %><br />
+<% end -%>
+<% if User.current.allowed_to?(:view_calendar, nil, :global => true) %>
+  <%= link_to(l(:label_calendar), :controller => 'issues', :action => 'calendar') %><br />
+<% end -%>
+<% if User.current.allowed_to?(:view_gantt, nil, :global => true) %>
+  <%= link_to(l(:label_gantt), :controller => 'gantts', :action => 'show') %><br />
+<% end -%>
+<%= call_hook(:view_cross_sidebar_issues_bottom) %>
+
+<% unless sidebar_queries.empty? -%>
+  <h3><%= l(:label_query_plural) %></h3>
+  <% sidebar_queries.each do |query| -%>
+    <%= link_to(h(query.name), :controller => 'issues', :action => 'index', :query_id => query) %><br />
+  <% end -%>
+<% end -%>
+
+<% if User.current.allowed_to?(:view_time_entries, nil, :global => true) \
+  && EnabledModule.first(:conditions => {:name => "time_tracking"}) %>
+<h3><%=l(:label_time_entry_plural)%></h3>
+<%= link_to(l(:label_overall_spent_time), {:controller => 'time_entries'}) %><br />
+<% end -%>
+<%= call_hook(:view_cross_sidebar_time_entries_bottom) %>
+
+<h3><%=l(:label_activity) %></h3>
+<%= link_to l(:label_overall_activity), {:controller => 'projects', :action => 'activity'} %><br />
diff --git a/app/views/gantts/show.html.erb b/app/views/gantts/show.html.erb
index 653a41d..e027989 100644
--- a/app/views/gantts/show.html.erb
+++ b/app/views/gantts/show.html.erb
@@ -238,7 +238,7 @@ if Date.today >= @gantt.date_from and Date.today <= @gantt.date_to %>
 <% end # query.valid? %>
 
 <% content_for :sidebar do %>
-    <%= render :partial => 'issues/sidebar' %>
-<% end %>
+  <%= render (@project ? 'issues/sidebar' : 'common/cross_sidebar') %>
+<% end -%>
 
 <% html_title(l(:label_gantt)) -%>
diff --git a/app/views/issues/index.rhtml b/app/views/issues/index.rhtml
index 1778f4d..39793fb 100644
--- a/app/views/issues/index.rhtml
+++ b/app/views/issues/index.rhtml
@@ -73,8 +73,8 @@
 <%= call_hook(:view_issues_index_bottom, { :issues => @issues, :project => @project, :query => @query }) %>
 
 <% content_for :sidebar do %>
-    <%= render :partial => 'issues/sidebar' %>
-<% end %>
+  <%= render (@project ? 'issues/sidebar' : 'common/cross_sidebar') %>
+<% end -%>
 
 <% content_for :header_tags do %>
     <%= auto_discovery_link_tag(:atom, {:query_id => @query, :format => 'atom', :page => nil, :key => User.current.rss_key}, :title => l(:label_issue_plural)) %>
diff --git a/app/views/projects/activity.rhtml b/app/views/projects/activity.rhtml
index 03cc8c6..1bc9026 100644
--- a/app/views/projects/activity.rhtml
+++ b/app/views/projects/activity.rhtml
@@ -43,7 +43,11 @@
 
 <% content_for :sidebar do %>
 <% form_tag({}, :method => :get) do %>
-<h3><%= l(:label_activity) %></h3>
+<% if @project -%>
+  <h3><%= l(:label_activity) %></h3>
+<% else -%>
+  <%= render 'common/cross_sidebar' if @project.nil? %>
+<% end -%>
 <p><% @activity.event_types.each do |t| %>
 <%= check_box_tag "show_#{t}", 1, @activity.scope.include?(t) %>
 <%= link_to(l("label_#{t.singularize}_plural"), {"show_#{t}" => 1, :user_id => params[:user_id]})%>
diff --git a/app/views/projects/index.rhtml b/app/views/projects/index.rhtml
index b4952e9..80c186c 100644
--- a/app/views/projects/index.rhtml
+++ b/app/views/projects/index.rhtml
@@ -3,10 +3,7 @@
 <% end %>
 
 <div class="contextual">
-    <%= link_to(l(:label_project_new), {:controller => 'projects', :action => 'add'}, :class => 'icon icon-add') + ' |' if User.current.allowed_to?(:add_project, nil, :global => true) %>
-    <%= link_to(l(:label_issue_view_all), { :controller => 'issues' }) + ' |' if User.current.allowed_to?(:view_issues, nil, :global => true) %>
-    <%= link_to(l(:label_overall_spent_time), { :controller => 'time_entries' }) + ' |' if User.current.allowed_to?(:view_time_entries, nil, :global => true) %>
-    <%= link_to l(:label_overall_activity), { :controller => 'projects', :action => 'activity' }%>
+    <%= link_to(l(:label_project_new), {:controller => 'projects', :action => 'add'}, :class => 'icon icon-add') if User.current.allowed_to?(:add_project, nil, :global => true) %>
 </div>
 
 <h2><%=l(:label_project_plural)%></h2>
@@ -23,4 +20,7 @@
 	<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
 <% end %>
 
+<% content_for :sidebar do -%>
+  <%= render 'common/cross_sidebar' %>
+<% end -%>
 <% html_title(l(:label_project_plural)) -%>
diff --git a/app/views/timelog/details.rhtml b/app/views/timelog/details.rhtml
index a17c06e..b3edc2e 100644
--- a/app/views/timelog/details.rhtml
+++ b/app/views/timelog/details.rhtml
@@ -33,3 +33,9 @@ already in the URI %>
 <% content_for :header_tags do %>
     <%= auto_discovery_link_tag(:atom, {:issue_id => @issue, :format => 'atom', :key => User.current.rss_key}, :title => l(:label_spent_time)) %>
 <% end %>
+
+<% if @project.nil? && @issue.nil? -%>
+<% content_for :sidebar do -%>
+  <%= render 'common/cross_sidebar' %>
+<% end -%>
+<% end -%>
