diff --git a/css/all-app.css b/css/all-app.css
index b49caed..97dc509 100644
--- a/css/all-app.css
+++ b/css/all-app.css
@@ -2812,7 +2812,7 @@
 }
 
 .erpnext-footer {
-	margin: 3px auto;
+	margin: 11px auto;
 	text-align: center;
 }
 
diff --git a/css/all-web.css b/css/all-web.css
index bebfe9a..c8eb20f 100644
--- a/css/all-web.css
+++ b/css/all-web.css
@@ -1620,7 +1620,7 @@
 }
 
 .erpnext-footer {
-	margin: 3px auto;
+	margin: 11px auto;
 	text-align: center;
 }
 
diff --git a/erpnext/home/page/activity/activity.js b/erpnext/home/page/activity/activity.js
index d8e22ce..feea380 100644
--- a/erpnext/home/page/activity/activity.js
+++ b/erpnext/home/page/activity/activity.js
@@ -15,8 +15,9 @@
 		this.scrub_data(data);
 		this.add_date_separator(row, data);
 		$(row).append(sprintf('<div style="margin: 0px">\
+			<span style="display: inline-block; min-width: 29px;">
 			<img src="%(imgsrc)s" style= "height: 24px; margin-bottom: -7px; \
-				max-width: 24px; margin-right: 5px"> \
+				max-width: 24px;"></span> \
 			<span %(onclick)s class="label %(add_class)s">%(feed_type)s</span>\
 			%(link)s %(subject)s <span class="user-info">%(by)s</span></div>', data));
 	},
diff --git a/erpnext/home/page/attributions/__init__.py b/erpnext/home/page/attributions/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/home/page/attributions/__init__.py
diff --git a/erpnext/home/page/attributions/attributions.css b/erpnext/home/page/attributions/attributions.css
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/home/page/attributions/attributions.css
diff --git a/erpnext/home/page/attributions/attributions.html b/erpnext/home/page/attributions/attributions.html
new file mode 100644
index 0000000..72703c8
--- /dev/null
+++ b/erpnext/home/page/attributions/attributions.html
@@ -0,0 +1,91 @@
+<div class="layout-wrapper">
+	<a class="close" onclick="window.history.back();">&times;</a>
+	<h1>Attributions</h1>
+	<hr>
+	<p><b>Source Code:</b> <a href="https://github.com/webnotes/erpnext">
+				https://github.com/webnotes/erpnext</a></p>
+	<p><b>Website:</b> <a href="https://erpnext.com">
+				https://erpnext.com</a></p>
+	<hr>
+	<p class="help">ERPNext is an Open Source project and is possible because of the work of
+		thousands of software developers, companies and designers who have contributed their
+		work to the community. We have tried to list as many projects as possible that are
+		used by ERPNext, but this list may not be exhaustive.</p>
+
+
+	<h4>Server</h4>
+	<ul>
+		<li>Linux (GNU)</li>
+		<li>Apache HTTPD server (web server)</li>
+		<li>MySQL (database, Percona build)</li>
+		<li>Git (source code control via Github)</li>
+	</ul>
+		
+	<h4>Programming Languages & Libraries</h4>
+	<ul>
+		<li><a href="http://python.org">Python</a></li>
+		<ul>
+			<li>Python-MySQL</li>
+			<li>pytz (timezones)</li>
+			<li>jinja2 (templating)</li>
+			<li>markdown2 (markdown parser)</li>
+			<li>jsmin (javascript minifier)</li>
+		</ul>
+		<li>Javascript</li>
+		<ul>
+			<li>JQuery</li>
+			<li>JQuery UI (datepicker, sortable)</li>
+			<li>TinyMCE - text editor</li>
+			<li>Twitter Bootstrap</li>
+			<li>jQPlot - graphs</li>
+			<li>JSON2 - JSON builder, parser</li>
+			<li>JSColor - color picker</li>
+			<li>sprintf - string formatting</li>
+			<li>historyjs - AJAX history</li>
+		</ul>
+	</ul>
+
+	<h4>CSS Frameworks</h4>
+	<ul>
+		<li>Twitter Bootstrap</li>
+	</ul>
+		
+	<h4>Icons</h4>
+	<ul>
+		<li>The Noun Project</li>
+		<li>Glyphicons</li>
+	</ul>
+
+	<h4>Web Frameworks</h4>
+	<ul>
+		<li>wnframework</li>
+	</ul>
+
+	<h4>Web Browsers</h4>
+	<ul>
+		<li>Mozilla Firefox</li>
+		<ul>
+			<li>Firebug (debugger)</li>
+		</ul>
+		<li>Apple Safari</li>
+		<li>Google Chorme</li>
+	</ul>
+	<hr>
+	<h2>ERPNext License</h2>
+	<p><b>ERPNext - Open Source, web based ERP</b></p>
+	<p>Copyright &copy; 2008 onwards, Web Notes Technologies Pvt Ltd, India</p>
+
+	<p>This program is free software: you can redistribute it and/or modify
+	    it under the terms of the <b>GNU General Public License</b> as published by
+	    the Free Software Foundation, either version 3 of the License, or
+	    (at your option) any later version.</p>
+
+	    <p>This program is distributed in the hope that it will be useful,
+	    but WITHOUT ANY WARRANTY; without even the implied warranty of
+	    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	    GNU General Public License for more details.</p>
+
+ 		<p>For complete license see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a></p>
+	<hr>
+	<p>For more information please write to us at support@erpnext.com</p>
+</div>
\ No newline at end of file
diff --git a/erpnext/home/page/attributions/attributions.js b/erpnext/home/page/attributions/attributions.js
new file mode 100644
index 0000000..fc56784
--- /dev/null
+++ b/erpnext/home/page/attributions/attributions.js
@@ -0,0 +1 @@
+wn.pages['attributions'].onload = function(wrapper) { }
\ No newline at end of file
diff --git a/erpnext/home/page/attributions/attributions.py b/erpnext/home/page/attributions/attributions.py
new file mode 100644
index 0000000..f807eb0
--- /dev/null
+++ b/erpnext/home/page/attributions/attributions.py
@@ -0,0 +1 @@
+import webnotes
\ No newline at end of file
diff --git a/erpnext/home/page/attributions/attributions.txt b/erpnext/home/page/attributions/attributions.txt
new file mode 100644
index 0000000..a15adb9
--- /dev/null
+++ b/erpnext/home/page/attributions/attributions.txt
@@ -0,0 +1,28 @@
+# Page, attributions
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-03-01 12:30:42',
+		'docstatus': 0,
+		'modified': '2012-03-01 12:30:42',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
+	},
+
+	# These values are common for all Page
+	{
+		'doctype': 'Page',
+		'module': u'Home',
+		'name': '__common__',
+		'page_name': u'attributions',
+		'standard': u'Yes',
+		'title': u'Attributions'
+	},
+
+	# Page, attributions
+	{
+		'doctype': 'Page',
+		'name': u'attributions'
+	}
+]
\ No newline at end of file
diff --git a/erpnext/startup/startup.css b/erpnext/startup/startup.css
index ae0ef60..1ce0264 100644
--- a/erpnext/startup/startup.css
+++ b/erpnext/startup/startup.css
@@ -16,7 +16,7 @@
 }
 
 .erpnext-footer {
-	margin: 3px auto;
+	margin: 11px auto;
 	text-align: center;
 }
 
diff --git a/erpnext/startup/startup.js b/erpnext/startup/startup.js
index 9a281e2..0de1704 100644
--- a/erpnext/startup/startup.js
+++ b/erpnext/startup/startup.js
@@ -73,7 +73,7 @@
 		// border to the body
 		// ------------------
 		$('footer').html('<div class="web-footer erpnext-footer">\
-			Powered by <a href="https://erpnext.com">ERPNext</a></div>');
+			<a href="#!attributions">ERPNext | Attributions and License</a></div>');
 
 		// complete registration
 		if(in_list(user_roles,'System Manager') && (wn.boot.setup_complete=='No')) { 
diff --git a/js/all-app.js b/js/all-app.js
index 3c65618..5d37f47 100644
--- a/js/all-app.js
+++ b/js/all-app.js
Binary files differ
diff --git a/js/all-web.js b/js/all-web.js
index e802a17..b7c9f35 100644
--- a/js/all-web.js
+++ b/js/all-web.js
@@ -1084,7 +1084,7 @@
 if(wn.boot.user_background){erpnext.set_user_background(wn.boot.user_background);}
 if(user=='Guest'){if(wn.boot.website_settings.title_prefix){wn.title_prefix=wn.boot.website_settings.title_prefix;}}else{wn.boot.profile.allow_modules=wn.boot.profile.allow_modules.concat(['To Do','Knowledge Base','Calendar','Activity'])
 erpnext.toolbar.setup();erpnext.startup.set_periodic_updates();$('footer').html('<div class="web-footer erpnext-footer">\
-   Powered by <a href="https://erpnext.com">ERPNext</a></div>');if(in_list(user_roles,'System Manager')&&(wn.boot.setup_complete=='No')){wn.require("erpnext/startup/js/complete_setup.js");erpnext.complete_setup();}}
+   <a href="#!attributions">ERPNext | Attributions and License</a></div>');if(in_list(user_roles,'System Manager')&&(wn.boot.setup_complete=='No')){wn.require("erpnext/startup/js/complete_setup.js");erpnext.complete_setup();}}
 $('#startup_div').toggle(false);}
 show_chart_browser=function(nm,chart_type){var call_back=function(){if(nm=='Sales Browser'){var sb_obj=new SalesBrowser();sb_obj.set_val(chart_type);}
 else if(nm=='Accounts Browser')
