diff --git a/doc/language_issues.de b/doc/language_issues.de
index aeb37ccf7..c5db3dc64 100644
--- a/doc/language_issues.de
+++ b/doc/language_issues.de
@@ -42,6 +42,7 @@ WARNING: translation string unused: TOS Bits
 WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: Weekly
+WARNING: translation string unused: abort
 WARNING: translation string unused: access allowed
 WARNING: translation string unused: access refused with this oinkcode
 WARNING: translation string unused: accounting
@@ -831,6 +832,7 @@ WARNING: translation string unused: tripwirewarningpolicy
 WARNING: translation string unused: umount
 WARNING: translation string unused: umount removable media before to unplug
 WARNING: translation string unused: unencrypted
+WARNING: translation string unused: uninstall
 WARNING: translation string unused: unix charset
 WARNING: translation string unused: unix group
 WARNING: translation string unused: unix password sync
diff --git a/doc/language_issues.en b/doc/language_issues.en
index 288aeda6e..5e4221153 100644
--- a/doc/language_issues.en
+++ b/doc/language_issues.en
@@ -82,7 +82,6 @@ WARNING: untranslated string: WakeOnLan = Wake On Lan
 WARNING: untranslated string: a ca certificate with this name already exists = A CA certificate with this name already exists.
 WARNING: untranslated string: a connection with this common name already exists = A connection with this common name already exists.
 WARNING: untranslated string: a connection with this name already exists = A connection with this name already exists.
-WARNING: untranslated string: abort = abort
 WARNING: untranslated string: access point name = Access Point Name
 WARNING: untranslated string: access point name is invalid = Access Point Name is invalid
 WARNING: untranslated string: access point name is required = Access Point Name is required
@@ -1457,7 +1456,7 @@ WARNING: untranslated string: pakfire core update level = Core-Update-Level
 WARNING: untranslated string: pakfire finished = Pakfire has finished! Returning...
 WARNING: untranslated string: pakfire finished error = Pakfire has finished! Errors occurred, please check the log output before proceeding.
 WARNING: untranslated string: pakfire install = Install
-WARNING: untranslated string: pakfire install description = Please choose one or more items from the list below and click the plus to install.
+WARNING: untranslated string: pakfire install description = Please select one or more add-ons to install.
 WARNING: untranslated string: pakfire install package = You want to install the following packages: 
 WARNING: untranslated string: pakfire installed addons = Installed Add-ons:
 WARNING: untranslated string: pakfire invalid tree = Invalid repository selected
@@ -1474,7 +1473,7 @@ WARNING: untranslated string: pakfire tree stable = Stable
 WARNING: untranslated string: pakfire tree testing = Testing
 WARNING: untranslated string: pakfire tree unstable = Unstable
 WARNING: untranslated string: pakfire uninstall all = Do you want to uninstall the following packages?
-WARNING: untranslated string: pakfire uninstall description = Please choose one or more items from the list below and click the minus to uninstall.
+WARNING: untranslated string: pakfire uninstall description = Please select one or more add-ons to remove.
 WARNING: untranslated string: pakfire uninstall package = You want to uninstall the following packages: 
 WARNING: untranslated string: pakfire updates = Available Updates
 WARNING: untranslated string: pakfire upgrade = Upgrade
@@ -1804,7 +1803,6 @@ WARNING: untranslated string: unable to contact = Unable to contact
 WARNING: untranslated string: unblock = Unblock
 WARNING: untranslated string: unblock all = Unblock all
 WARNING: untranslated string: uncheck all = Uncheck all
-WARNING: untranslated string: uninstall = Uninstall
 WARNING: untranslated string: unknown = UNKNOWN
 WARNING: untranslated string: unlimited = Unlimited
 WARNING: untranslated string: unnamed = Unnamed
diff --git a/doc/language_issues.es b/doc/language_issues.es
index c68e79292..de7a79bc4 100644
--- a/doc/language_issues.es
+++ b/doc/language_issues.es
@@ -43,6 +43,7 @@ WARNING: translation string unused: TOS Bits
 WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: Weekly
+WARNING: translation string unused: abort
 WARNING: translation string unused: access allowed
 WARNING: translation string unused: access refused with this oinkcode
 WARNING: translation string unused: accounting
@@ -896,6 +897,7 @@ WARNING: translation string unused: tripwirewarningpolicy
 WARNING: translation string unused: umount
 WARNING: translation string unused: umount removable media before to unplug
 WARNING: translation string unused: unencrypted
+WARNING: translation string unused: uninstall
 WARNING: translation string unused: unix charset
 WARNING: translation string unused: unix group
 WARNING: translation string unused: unix password sync
diff --git a/doc/language_issues.fr b/doc/language_issues.fr
index e0d8cb1f4..41cda1988 100644
--- a/doc/language_issues.fr
+++ b/doc/language_issues.fr
@@ -46,6 +46,7 @@ WARNING: translation string unused: TOS Bits
 WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
 WARNING: translation string unused: Weekly
+WARNING: translation string unused: abort
 WARNING: translation string unused: access allowed
 WARNING: translation string unused: access refused with this oinkcode
 WARNING: translation string unused: accounting
@@ -869,6 +870,7 @@ WARNING: translation string unused: tripwirewarningpolicy
 WARNING: translation string unused: umount
 WARNING: translation string unused: umount removable media before to unplug
 WARNING: translation string unused: unencrypted
+WARNING: translation string unused: uninstall
 WARNING: translation string unused: unix charset
 WARNING: translation string unused: unix group
 WARNING: translation string unused: unix password sync
diff --git a/doc/language_issues.it b/doc/language_issues.it
index e00d5c5c1..80ef72027 100644
--- a/doc/language_issues.it
+++ b/doc/language_issues.it
@@ -18,6 +18,7 @@ WARNING: translation string unused: Subclass
 WARNING: translation string unused: TOS Bits
 WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
+WARNING: translation string unused: abort
 WARNING: translation string unused: access allowed
 WARNING: translation string unused: access refused with this oinkcode
 WARNING: translation string unused: accounting
@@ -822,6 +823,7 @@ WARNING: translation string unused: tripwirewarningpolicy
 WARNING: translation string unused: umount
 WARNING: translation string unused: umount removable media before to unplug
 WARNING: translation string unused: unencrypted
+WARNING: translation string unused: uninstall
 WARNING: translation string unused: unix charset
 WARNING: translation string unused: unix group
 WARNING: translation string unused: unix password sync
diff --git a/doc/language_issues.nl b/doc/language_issues.nl
index 42fb6088d..43b16a94f 100644
--- a/doc/language_issues.nl
+++ b/doc/language_issues.nl
@@ -18,6 +18,7 @@ WARNING: translation string unused: Subclass
 WARNING: translation string unused: TOS Bits
 WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
+WARNING: translation string unused: abort
 WARNING: translation string unused: access allowed
 WARNING: translation string unused: access refused with this oinkcode
 WARNING: translation string unused: accounting
@@ -822,6 +823,7 @@ WARNING: translation string unused: tripwirewarningpolicy
 WARNING: translation string unused: umount
 WARNING: translation string unused: umount removable media before to unplug
 WARNING: translation string unused: unencrypted
+WARNING: translation string unused: uninstall
 WARNING: translation string unused: unix charset
 WARNING: translation string unused: unix group
 WARNING: translation string unused: unix password sync
diff --git a/doc/language_issues.pl b/doc/language_issues.pl
index e7ffefd71..e59af3996 100644
--- a/doc/language_issues.pl
+++ b/doc/language_issues.pl
@@ -18,6 +18,7 @@ WARNING: translation string unused: Subclass
 WARNING: translation string unused: TOS Bits
 WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
+WARNING: translation string unused: abort
 WARNING: translation string unused: access allowed
 WARNING: translation string unused: access refused with this oinkcode
 WARNING: translation string unused: accounting
@@ -738,6 +739,7 @@ WARNING: translation string unused: tripwirewarningpolicy
 WARNING: translation string unused: umount
 WARNING: translation string unused: umount removable media before to unplug
 WARNING: translation string unused: unencrypted
+WARNING: translation string unused: uninstall
 WARNING: translation string unused: unix charset
 WARNING: translation string unused: unix group
 WARNING: translation string unused: unix password sync
diff --git a/doc/language_issues.ru b/doc/language_issues.ru
index 6ce1a3516..371f38fa7 100644
--- a/doc/language_issues.ru
+++ b/doc/language_issues.ru
@@ -18,6 +18,7 @@ WARNING: translation string unused: Subclass
 WARNING: translation string unused: TOS Bits
 WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
+WARNING: translation string unused: abort
 WARNING: translation string unused: access allowed
 WARNING: translation string unused: access refused with this oinkcode
 WARNING: translation string unused: accounting
@@ -733,6 +734,7 @@ WARNING: translation string unused: tripwirewarningpolicy
 WARNING: translation string unused: umount
 WARNING: translation string unused: umount removable media before to unplug
 WARNING: translation string unused: unencrypted
+WARNING: translation string unused: uninstall
 WARNING: translation string unused: unix charset
 WARNING: translation string unused: unix group
 WARNING: translation string unused: unix password sync
diff --git a/doc/language_issues.tr b/doc/language_issues.tr
index 5cf3953ad..fd624e9d6 100644
--- a/doc/language_issues.tr
+++ b/doc/language_issues.tr
@@ -39,6 +39,7 @@ WARNING: translation string unused: Subclass
 WARNING: translation string unused: TOS Bits
 WARNING: translation string unused: Utilization on
 WARNING: translation string unused: Verbose
+WARNING: translation string unused: abort
 WARNING: translation string unused: access allowed
 WARNING: translation string unused: access refused with this oinkcode
 WARNING: translation string unused: accounting
@@ -851,6 +852,7 @@ WARNING: translation string unused: tripwirewarningpolicy
 WARNING: translation string unused: umount
 WARNING: translation string unused: umount removable media before to unplug
 WARNING: translation string unused: unencrypted
+WARNING: translation string unused: uninstall
 WARNING: translation string unused: unix charset
 WARNING: translation string unused: unix group
 WARNING: translation string unused: unix password sync
diff --git a/html/cgi-bin/pakfire.cgi b/html/cgi-bin/pakfire.cgi
index 80aaf9a1c..1cd39e411 100644
--- a/html/cgi-bin/pakfire.cgi
+++ b/html/cgi-bin/pakfire.cgi
@@ -120,18 +120,18 @@ if(($cgiparams{'ACTION'} ne '') && ($pagemode eq $PM_DEFAULT)) {
 	if(&_is_pakfire_busy()) {
 		$errormessage = $Lang::tr{'pakfire already busy'};
 		$pagemode = $PM_LOGREAD; # Running Pakfire instance found, switch to log viewer mode
-	} elsif(($cgiparams{'ACTION'} eq 'install') && ($cgiparams{'FORCE'} eq 'on')) {
+	} elsif(($cgiparams{'ACTION'} eq $Lang::tr{'pakfire install'}) && ($cgiparams{'FORCE'} eq 'on')) {
 		my @pkgs = split(/\|/, $cgiparams{'INSPAKS'});
 		&General::system_background("/usr/local/bin/pakfire", "install", "--non-interactive", "--no-colors", @pkgs);
 		&_http_pagemode_redirect($PM_LOGREAD, 1);
-	} elsif(($cgiparams{'ACTION'} eq 'remove') && ($cgiparams{'FORCE'} eq 'on')) {
+	} elsif(($cgiparams{'ACTION'} eq $Lang::tr{'remove'}) && ($cgiparams{'FORCE'} eq 'on')) {
 		my @pkgs = split(/\|/, $cgiparams{'DELPAKS'});
 		&General::system_background("/usr/local/bin/pakfire", "remove", "--non-interactive", "--no-colors", @pkgs);
 		&_http_pagemode_redirect($PM_LOGREAD, 1);
-	} elsif($cgiparams{'ACTION'} eq 'update') {
+	} elsif($cgiparams{'ACTION'} eq $Lang::tr{'pakfire refresh list'}) {
 		&General::system_background("/usr/local/bin/pakfire", "update", "--force", "--no-colors");
 		&_http_pagemode_redirect($PM_LOGREAD, 1);
-	} elsif($cgiparams{'ACTION'} eq 'upgrade') {
+	} elsif($cgiparams{'ACTION'} eq $Lang::tr{'pakfire upgrade'}) {
 		&General::system_background("/usr/local/bin/pakfire", "upgrade", "-y", "--no-colors");
 		&_http_pagemode_redirect($PM_LOGREAD, 1);
 	} elsif($cgiparams{'ACTION'} eq $Lang::tr{'save'}) {
@@ -161,16 +161,11 @@ my $extraHead = <<END
 	/* Main screen */
 	table#pfmain {
 		width: 100%;
-		border-style: hidden;
 		table-layout: fixed;
-	}
-
-	#pfmain td {
-		padding: 5px 20px 0;
 		text-align: center;
 	}
-	#pfmain tr:not(:last-child) > td {
-		padding-bottom: 1.5em;
+	#pfmain td {
+		padding: 0px 20px;
 	}
 	#pfmain tr > td.heading {
 		padding: 0;
@@ -207,7 +202,6 @@ my $extraHead = <<END
 		margin-top: 0.7em;
 		padding-top: 0.7em;
 		border-top: 0.5px solid $Header::bordercolour;
-
 		text-align: left;
 		min-height: 15em;
 		overflow-x: auto;
@@ -280,36 +274,40 @@ END
 
 # Show Pakfire install/remove dependencies and confirm form
 # (_is_pakfire_busy status was checked before and can be omitted)
-if (($cgiparams{'ACTION'} eq 'install') && ($pagemode eq $PM_DEFAULT)) {
+if (($cgiparams{'ACTION'} eq $Lang::tr{'pakfire install'}) && ($pagemode eq $PM_DEFAULT)) {
 	&Header::openbox("100%", "center", $Lang::tr{'request'});
 
 	my @pkgs = split(/\|/, $cgiparams{'INSPAKS'});
 	my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", @pkgs);
 	print <<END;
-	<table style="width: 100%"><tr><td colspan='2'><p>$Lang::tr{'pakfire install package'} <strong>@{pkgs}</strong><br>
-		$Lang::tr{'pakfire possible dependency'}</p>
-		<pre>
+	<table style="width: 100%">
+		<tr>
+			<td>
+			<p>$Lang::tr{'pakfire install package'} <strong>@{pkgs}</strong><br>$Lang::tr{'pakfire possible dependency'}</p>
+			<pre>
 END
 	foreach (@output) {
 		$_ =~ s/\\[[0-1]\;[0-9]+m//g;
 		print "$_\n";
 	}
 	print <<END;
-		</pre></td></tr>
-		<tr><td colspan='2'>$Lang::tr{'pakfire accept all'}</td></tr>
-		<tr><td colspan='2'>&nbsp;</td></tr>
-		<tr><td align='right'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
-					<input type='hidden' name='INSPAKS' value='$cgiparams{'INSPAKS'}' />
-					<input type='hidden' name='FORCE' value='on' />
-					<input type='hidden' name='ACTION' value='install' />
-					<input type='image' alt='$Lang::tr{'pakfire install'}' title='$Lang::tr{'pakfire install'}' src='/images/go-next.png' />
-				</form>
+			</pre>
 			</td>
-			<td align='left'>
-				<form method='post' action='$ENV{'SCRIPT_NAME'}'>
-					<input type='hidden' name='ACTION' value='' />
-					<input type='image' alt='$Lang::tr{'abort'}' title='$Lang::tr{'abort'}' src='/images/dialog-error.png' />
-				</form>
+		</tr>
+		<tr>
+			<td>$Lang::tr{'pakfire accept all'}</td>
+		</tr>
+		<tr>
+			<td>&nbsp;</td>
+		</tr>
+		<tr>
+			<td align='center'>
+			<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+			<input type='hidden' name='INSPAKS' value='$cgiparams{'INSPAKS'}' />
+			<input type='hidden' name='FORCE' value='on' />
+			<input type='submit' name='ACTION' value='$Lang::tr{'pakfire install'}'/>
+			<input type='submit' name='ACTION' value='$Lang::tr{'cancel'}'/>
+			</form>
 			</td>
 		</tr>
 	</table>
@@ -319,36 +317,40 @@ END
 	&Header::closepage();
 	exit;
 
-} elsif (($cgiparams{'ACTION'} eq 'remove') && ($pagemode eq $PM_DEFAULT)) {
+} elsif (($cgiparams{'ACTION'} eq $Lang::tr{'remove'}) && ($pagemode eq $PM_DEFAULT)) {
 	&Header::openbox("100%", "center", $Lang::tr{'request'});
 
 	my @pkgs = split(/\|/, $cgiparams{'DELPAKS'});
 	my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", @pkgs);
 	print <<END;
-	<table style="width: 100%"><tr><td colspan='2'><p>$Lang::tr{'pakfire uninstall package'} <strong>@{pkgs}</strong><br>
-		$Lang::tr{'pakfire possible dependency'}</p>
-		<pre>
+	<table style="width: 100%">
+		<tr>
+			<td colspan='2'>
+			<p>$Lang::tr{'pakfire uninstall package'} <strong>@{pkgs}</strong><br>$Lang::tr{'pakfire possible dependency'}</p>
+			<pre>
 END
 	foreach (@output) {
 		$_ =~ s/\\[[0-1]\;[0-9]+m//g;
 		print "$_\n";
 	}
 	print <<END;
-		</pre></td></tr>
-		<tr><td colspan='2'>$Lang::tr{'pakfire uninstall all'}</td></tr>
-		<tr><td colspan='2'>&nbsp;</td></tr>
-		<tr><td align='right'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
-					<input type='hidden' name='DELPAKS' value='$cgiparams{'DELPAKS'}' />
-					<input type='hidden' name='FORCE' value='on' />
-					<input type='hidden' name='ACTION' value='remove' />
-					<input type='image' alt='$Lang::tr{'uninstall'}' title='$Lang::tr{'uninstall'}' src='/images/go-next.png' />
-				</form>
+			</pre>
 			</td>
-			<td align='left'>
-				<form method='post' action='$ENV{'SCRIPT_NAME'}'>
-					<input type='hidden' name='ACTION' value='' />
-					<input type='image' alt='$Lang::tr{'abort'}' title='$Lang::tr{'abort'}' src='/images/dialog-error.png' />
-				</form>
+		</tr>
+		<tr>
+			<td colspan='2'>$Lang::tr{'pakfire uninstall all'}</td>
+		</tr>
+		<tr>
+			<td colspan='2'>&nbsp;</td>
+		</tr>
+		<tr>
+			<td align='center'>
+			<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+			<input type='hidden' name='DELPAKS' value='$cgiparams{'DELPAKS'}' />
+			<input type='hidden' name='FORCE' value='on' />
+			<input type='submit' name='ACTION' value='$Lang::tr{'remove'}'/>
+			<input type='submit' name='ACTION' value='$Lang::tr{'cancel'}'/>
+			</form>
 			</td>
 		</tr>
 	</table>
@@ -374,30 +376,36 @@ $selected{"TREE"}{$pakfiresettings{"TREE"}} = "selected";
 print <<END;
 	<table id="pfmain">
 END
-if ("$pakfire_status{'RebootRequired'}" eq "yes") {
-	print "\t\t<tr><td colspan='2'><a href='/cgi-bin/shutdown.cgi'>$Lang::tr{'needreboot'}!</a></td></tr>\n";
+if ($pakfire_status{'RebootRequired'} eq "yes")
+{
+	print <<END;
+		<tr>
+			<td colspan='2' style='padding-bottom:20px'>
+			<a href='/cgi-bin/shutdown.cgi'>$Lang::tr{'needreboot'}!</a>
+			</td>
+		</tr>
+END
 }
 
 print <<END;
-		<tr><td class="heading">$Lang::tr{'pakfire system state'}:</td>
-			<td class="heading">$Lang::tr{'pakfire updates'}:</td></tr>
-
-		<tr><td><strong>$Lang::tr{'pakfire core update level'}: $pakfire_status{'Release'}</strong>
-				<hr>
-				<div class="pflist">
-					$Lang::tr{'pakfire last update'} $pakfire_status{'LastUpdate'} $Lang::tr{'pakfire ago'}<br>
-					$Lang::tr{'pakfire last serverlist update'} $pakfire_status{'LastServerListUpdate'} $Lang::tr{'pakfire ago'}<br>
-					$Lang::tr{'pakfire last core list update'} $pakfire_status{'LastCoreListUpdate'} $Lang::tr{'pakfire ago'}<br>
-					$Lang::tr{'pakfire last package update'} $pakfire_status{'LastPakListUpdate'} $Lang::tr{'pakfire ago'}
-				</div>
-				<form method='post' action='$ENV{'SCRIPT_NAME'}'>
-					<input type='hidden' name='ACTION' value='update' />
-					<input type='submit' value='$Lang::tr{'pakfire refresh list'}' />
-				</form>
+		<tr>
+			<td class="heading">$Lang::tr{'pakfire system state'}:</td>
+			<td class="heading">$Lang::tr{'pakfire updates'}:</td>
+		</tr>
+
+		<tr>
+			<td style='padding-top: 15px'>
+			<strong>$Lang::tr{'pakfire core update level'}: $pakfire_status{'Release'}</strong>
+			<hr>
+			<div class="pflist">
+				$Lang::tr{'pakfire last update'} $pakfire_status{'LastUpdate'} $Lang::tr{'pakfire ago'}<br>
+				$Lang::tr{'pakfire last serverlist update'} $pakfire_status{'LastServerListUpdate'} $Lang::tr{'pakfire ago'}<br>
+				$Lang::tr{'pakfire last core list update'} $pakfire_status{'LastCoreListUpdate'} $Lang::tr{'pakfire ago'}<br>
+				$Lang::tr{'pakfire last package update'} $pakfire_status{'LastPakListUpdate'} $Lang::tr{'pakfire ago'}
+			</div>
 			</td>
-			<td>
-				<form method='post' action='$ENV{'SCRIPT_NAME'}'>
-					<select name="UPDPAKS" class="pflist" size="5" disabled>
+			<td style='padding-top: 15px'>
+			<select class="pflist" style="height: 103px" size="5" disabled>
 END
 
 	if ("$pakfire_status{'CoreUpdateAvailable'}" eq "yes") {
@@ -412,18 +420,44 @@ END
 	}
 
 	print <<END;
-					</select>
-					<input type='hidden' name='ACTION' value='upgrade' />
-					<input type='image' alt='$Lang::tr{'pakfire upgrade'}' title='$Lang::tr{'pakfire upgrade'}' src='/images/document-save.png' />
-				 </form>
+			</select>
 			</td>
 		</tr>
-		<tr><td class="heading">$Lang::tr{'pakfire available addons'}</td>
-			<td class="heading">$Lang::tr{'pakfire installed addons'}</td></tr>
+		<tr>
+			<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+			<td style='padding-bottom: 15px'>
+			<input type='submit' name='ACTION' value='$Lang::tr{'pakfire refresh list'}' />
+			</td>
+			<td style='padding-bottom: 15px'>
+END
 
-		<tr><td style="padding:5px 10px 20px 20px" align="center"><p>$Lang::tr{'pakfire install description'}</p>
-				<form method='post' action='$ENV{'SCRIPT_NAME'}'>
-					<select name="INSPAKS" class="pflist" size="10" multiple>
+        if (($pakfire_status{'CoreUpdateAvailable'} eq "yes") || ($pakfire_status{'PakUpdatesAvailable'} > 0))
+        {
+                print "<input type='submit' name='ACTION' value='$Lang::tr{'pakfire upgrade'}'/>\n";
+        } else {
+                print "<input disabled type='submit' name='ACTION' value='$Lang::tr{'pakfire upgrade'}'/>\n";
+        }
+
+	print <<END;
+			</td>
+			</form>
+		</tr>
+		<tr>
+			<td class="heading">$Lang::tr{'pakfire available addons'}</td>
+			<td class="heading">$Lang::tr{'pakfire installed addons'}</td>
+		</tr>
+		<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+		<tr>
+			<td style='padding-top: 15px; padding-bottom: 5px'>
+			$Lang::tr{'pakfire install description'}
+			</td>
+			<td style='padding-top: 15px; padding-bottom: 5px'>
+			$Lang::tr{'pakfire uninstall description'}
+			</td>
+		</tr>
+		<tr>
+			<td>
+			<select name="INSPAKS" class="pflist" style="height:206px" size="10" multiple onchange="document.getElementById('installbutton').disabled=false">
 END
 
 	my %notinstalledlist = &Pakfire::dblist("notinstalled");
@@ -432,14 +466,10 @@ END
 	}
 
 	print <<END;
-					</select>
-					<input type='hidden' name='ACTION' value='install' />
-					<input type='image' alt='$Lang::tr{'pakfire install'}' title='$Lang::tr{'pakfire install'}' src='/images/list-add.png' />
-				</form>
+			</select>
 			</td>
-			<td style="padding:5px 10px 20px 20px" align="center"><p>$Lang::tr{'pakfire uninstall description'}</p>
-				<form method='post' action='$ENV{'SCRIPT_NAME'}'>
-					<select name="DELPAKS" class="pflist" size="10" multiple>
+			<td>
+			<select name="DELPAKS" class="pflist" style="height:206px" size="10" multiple onchange="document.getElementById('removebutton').disabled=false">
 END
 
 	my %installedlist = &Pakfire::dblist("installed");
@@ -448,12 +478,18 @@ END
 	}
 
 	print <<END;
-					</select>
-					<input type='hidden' name='ACTION' value='remove' />
-					<input type='image' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' src='/images/list-remove.png' />
-				</form>
+			</select>
+			</td>
+		</tr>
+		<tr>
+			<td style='padding-bottom: 5px'>
+			<input disabled type='submit' id='installbutton' name='ACTION' value='$Lang::tr{'pakfire install'}'/>
+			</td>
+			<td style='padding-bottom: 5px'>
+			<input disabled type='submit' id='removebutton' name='ACTION' value='$Lang::tr{'remove'}'/>
 			</td>
 		</tr>
+		</form>
 	</table>
 END
 
diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl
index 9a7d093ff..bb0c51f03 100644
--- a/langs/de/cgi-bin/de.pl
+++ b/langs/de/cgi-bin/de.pl
@@ -2019,7 +2019,7 @@
 'pakfire finished error' => 'Pakfire ist fertig! Fehler sind aufgetreten, bitte überprüfen Sie die Log-Ausgabe, bevor Sie fortfahren.',
 'pakfire health check' => 'Mirrors auf Erreichbarkeit prüfen (Ping):',
 'pakfire install' => 'Installieren',
-'pakfire install description' => 'Wählen Sie ein oder mehrere Pakete zur Installation aus und drücken Sie auf das plus-Symbol.',
+'pakfire install description' => 'Bitte wählen Sie ein oder mehrere Add-Ons zur Installation aus.',
 'pakfire install package' => 'Sie möchten folgende Pakete installieren: ',
 'pakfire installed addons' => 'Installierte Add-ons:',
 'pakfire invalid tree' => '',
@@ -2039,7 +2039,7 @@
 'pakfire tree testing' => 'Vorabversionen (testing)',
 'pakfire tree unstable' => 'Experimentelle Versionen (unstable)',
 'pakfire uninstall all' => 'Möchten Sie die folgenden Pakete deinstallieren?',
-'pakfire uninstall description' => 'Wählen Sie ein oder mehrere Pakete zur Deinstallation aus und drücken Sie auf das minus-Symbol.',
+'pakfire uninstall description' => 'Bitte wählen Sie ein oder mehrere Add-Ons zum Entfernen aus.',
 'pakfire uninstall package' => 'Sie möchten folgende Pakete deinstallieren: ',
 'pakfire update daily' => 'Täglich nach Updates suchen:',
 'pakfire updates' => 'Verfügbare Updates',
diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
index 06db0cab1..9dccabf09 100644
--- a/langs/en/cgi-bin/en.pl
+++ b/langs/en/cgi-bin/en.pl
@@ -2085,7 +2085,7 @@
 'pakfire finished error' => 'Pakfire has finished! Errors occurred, please check the log output before proceeding.',
 'pakfire health check' => 'Check if mirror is reachable (ping):',
 'pakfire install' => 'Install',
-'pakfire install description' => 'Please choose one or more items from the list below and click the plus to install.',
+'pakfire install description' => 'Please select one or more add-ons to install.',
 'pakfire install package' => 'You want to install the following packages: ',
 'pakfire installed addons' => 'Installed Add-ons:',
 'pakfire invalid tree' => 'Invalid repository selected',
@@ -2105,7 +2105,7 @@
 'pakfire tree testing' => 'Testing',
 'pakfire tree unstable' => 'Unstable',
 'pakfire uninstall all' => 'Do you want to uninstall the following packages?',
-'pakfire uninstall description' => 'Please choose one or more items from the list below and click the minus to uninstall.',
+'pakfire uninstall description' => 'Please select one or more add-ons to remove.',
 'pakfire uninstall package' => 'You want to uninstall the following packages: ',
 'pakfire update daily' => 'Search for updates daily:',
 'pakfire updates' => 'Available Updates',
diff --git a/langs/es/cgi-bin/es.pl b/langs/es/cgi-bin/es.pl
index d1bd54d88..4da08b480 100644
--- a/langs/es/cgi-bin/es.pl
+++ b/langs/es/cgi-bin/es.pl
@@ -2082,7 +2082,7 @@
 'pakfire finished error' => '¡Pakfire ha terminado! Ocurrieron errores, verifique la salida del registro antes de continuar.',
 'pakfire health check' => 'Verificar disponibilidad del espejo (ping):',
 'pakfire install' => 'Instalar',
-'pakfire install description' => 'Por favor elija uno o más elementos de la siguiente lista y haga click en el signo + para instalar',
+'pakfire install description' => 'Seleccione uno o más complementos para instalar.',
 'pakfire install package' => 'Ud. desea instalar los siguientes paquetes:',
 'pakfire installed addons' => 'Complementos instalados:',
 'pakfire invalid tree' => 'Repositorio no válido seleccionado',
@@ -2102,7 +2102,7 @@
 'pakfire tree testing' => 'Pruebas',
 'pakfire tree unstable' => 'Inestable',
 'pakfire uninstall all' => '¿Desea desinstalar los siguientes paquetes?',
-'pakfire uninstall description' => 'Por favor elija uno o más elementos de la siguiente lista y haga click en el signo - para desinstalar',
+'pakfire uninstall description' => 'Seleccione uno o más complementos para eliminar.',
 'pakfire uninstall package' => 'Desea desinstalar los siguientes paquetes:',
 'pakfire update daily' => 'Buscar actualizaciones diariamente:',
 'pakfire updates' => 'Actualizaciones Disponibles',
diff --git a/langs/fr/cgi-bin/fr.pl b/langs/fr/cgi-bin/fr.pl
index 0513d1395..9e457acd0 100644
--- a/langs/fr/cgi-bin/fr.pl
+++ b/langs/fr/cgi-bin/fr.pl
@@ -2080,7 +2080,7 @@
 'pakfire finished error' => 'Pakfire a fini ! Des erreurs se sont produites, veuillez vérifier les rapports système des journaux avant de continuer.',
 'pakfire health check' => 'Vérifier si le miroir est accessible (ping) :',
 'pakfire install' => 'Installer',
-'pakfire install description' => 'Veuillez choisir un ou plusieurs modules dans la liste ci-dessous<br>et cliquer sur le signe PLUS pour le(s) installer.',
+'pakfire install description' => 'Veuillez sélectionner un ou plusieurs modules complémentaires à installer.',
 'pakfire install package' => 'Vous souhaitez installer le(s) module(s) suivant(s) : ',
 'pakfire installed addons' => 'Modules installés :',
 'pakfire invalid tree' => 'Dépôt choisi invalide',
@@ -2100,7 +2100,7 @@
 'pakfire tree testing' => 'En test',
 'pakfire tree unstable' => 'Instable',
 'pakfire uninstall all' => 'Voulez-vous désinstaller ce(s) paquet(s) ?',
-'pakfire uninstall description' => 'Veuillez choisir un ou plusieurs modules dans la liste ci-dessous<br>et cliquer sur le signe MOINS pour le(s) désinstaller.',
+'pakfire uninstall description' => 'Veuillez sélectionner un ou plusieurs modules complémentaires à supprimer.',
 'pakfire uninstall package' => 'Vous souhaitez désinstaller le(s) module(s) suivant(s) : ',
 'pakfire update daily' => 'Rechercher des mises à jour quotidiennes :',
 'pakfire updates' => 'Mises à jour Disponibles',
diff --git a/langs/it/cgi-bin/it.pl b/langs/it/cgi-bin/it.pl
index 18fe1703e..b13c3b85c 100644
--- a/langs/it/cgi-bin/it.pl
+++ b/langs/it/cgi-bin/it.pl
@@ -1718,7 +1718,7 @@
 'pakfire dependencies found' => 'Dipendenze trovate:',
 'pakfire health check' => 'Controllare se il mirror è raggiungibile (ping):',
 'pakfire install' => 'Installare',
-'pakfire install description' => 'Si prega di scegliere uno o più elementi dalla lista qui sotto e fai clic sul segno più per installare.',
+'pakfire install description' => 'Selezionare uno o più componenti aggiuntivi da installare.',
 'pakfire install package' => 'You want to install the following packages: ',
 'pakfire installed addons' => 'Addons installati:',
 'pakfire last core list update' => 'Ultimo aggiornamento della lista di sistema',
@@ -1732,7 +1732,7 @@
 'pakfire resolvedeps wait' => 'Controllo delle dipendenze, attendere prego...',
 'pakfire system state' => 'Stato del Sistema',
 'pakfire uninstall all' => 'Vuoi disinstallare i seguenti pacchetti?',
-'pakfire uninstall description' => 'Si prega di scegliere uno o più elementi dalla lista qui sotto e fare clic sul meno per disinstallare..',
+'pakfire uninstall description' => 'Seleziona uno o più componenti aggiuntivi da rimuovere.',
 'pakfire uninstall package' => 'You want to uninstall the following packages: ',
 'pakfire update daily' => 'Ricerca gli aggiornamenti una volta al giorno:',
 'pakfire updates' => 'Aggiornamenti Disponibili',
diff --git a/langs/nl/cgi-bin/nl.pl b/langs/nl/cgi-bin/nl.pl
index c844c9613..439f24249 100644
--- a/langs/nl/cgi-bin/nl.pl
+++ b/langs/nl/cgi-bin/nl.pl
@@ -1693,7 +1693,7 @@
 'pakfire dependencies found' => 'Afhankelijkheden gevonden:',
 'pakfire health check' => 'Controleer of de mirror bereikbaar is  (ping):',
 'pakfire install' => 'Installeren',
-'pakfire install description' => 'Kies een of meer items uit de lijst hieronder en klik op de plus om te installeren.',
+'pakfire install description' => 'Selecteer een of meer add-ons om te installeren.',
 'pakfire install package' => 'U wilt de volgende pakketten installeren: ',
 'pakfire installed addons' => 'Geïnstalleerde add-ons:',
 'pakfire last core list update' => 'Laatste core-lijst update gemaakt',
@@ -1707,7 +1707,7 @@
 'pakfire resolvedeps wait' => 'Controleren op afhankelijkheden, even geduld...',
 'pakfire system state' => 'Systeemstatus',
 'pakfire uninstall all' => 'Wilt u de volgende pakketten verwijderen?',
-'pakfire uninstall description' => 'Kies een of meer items uit de lijst hieronder en klik op de min om te deinstalleren.',
+'pakfire uninstall description' => 'Selecteer een of meer add-ons om te verwijderen.',
 'pakfire uninstall package' => 'U wilt de volgende pakketten deinstalleren: ',
 'pakfire update daily' => 'Zoek dagelijks naar updates:',
 'pakfire updates' => 'Beschikbare Updates',
diff --git a/langs/pl/cgi-bin/pl.pl b/langs/pl/cgi-bin/pl.pl
index 8e3ca59cb..c5198b6f1 100644
--- a/langs/pl/cgi-bin/pl.pl
+++ b/langs/pl/cgi-bin/pl.pl
@@ -1358,7 +1358,7 @@
 'pakfire dependencies found' => 'Znaleziono zależności:',
 'pakfire health check' => 'Sprawdź czy mirror jest dostępny (ping):',
 'pakfire install' => 'Instaluj',
-'pakfire install description' => 'Proszę wybrać jedną lub kilka pozycji z poniższej listy, a następnie kliknąć plus aby zainstalować.',
+'pakfire install description' => 'Wybierz jeden lub więcej dodatków do zainstalowania.',
 'pakfire install package' => 'Zamierzasz zainstalować następujące pakiety: ',
 'pakfire installed addons' => 'Zainstalowane dodatki:',
 'pakfire last core list update' => 'Sprawdzenie aktualizacja jądra:',
@@ -1372,7 +1372,7 @@
 'pakfire resolvedeps wait' => 'Sprawdzanie zależności, proszę czekać...',
 'pakfire system state' => 'Status systemu',
 'pakfire uninstall all' => 'Czy chcesz odinstalować następujące pakiety?',
-'pakfire uninstall description' => 'Proszę wybrać jedną lub kilka pozycji z poniższej listy, a następnie kliknąć minus aby odinstalować.',
+'pakfire uninstall description' => 'Wybierz jeden lub więcej dodatków do usunięcia.',
 'pakfire uninstall package' => 'Zamierzasz odinstalować następujące pakiety: ',
 'pakfire update daily' => 'Szukaj aktualizacje codziennie:',
 'pakfire updates' => 'Dostępne Aktualizacje',
diff --git a/langs/ru/cgi-bin/ru.pl b/langs/ru/cgi-bin/ru.pl
index 2695954dd..1a3ac2230 100644
--- a/langs/ru/cgi-bin/ru.pl
+++ b/langs/ru/cgi-bin/ru.pl
@@ -1353,7 +1353,7 @@
 'pakfire dependencies found' => 'Зависимости найдены:',
 'pakfire health check' => 'Пинговать зеркало на доступность:',
 'pakfire install' => 'Установить',
-'pakfire install description' => 'Пожалуйста, укажите один или несколько элементов в списке ниже и нажмите плюсик для установки.',
+'pakfire install description' => 'Пожалуйста, выберите одно или несколько дополнений для установки.',
 'pakfire install package' => 'Вы собираетесь установить следующие пакеты: ',
 'pakfire installed addons' => 'Установленные Аддоны:',
 'pakfire last core list update' => 'Обновление core-списков',
@@ -1367,7 +1367,7 @@
 'pakfire resolvedeps wait' => 'Проверка зависимостей, пожалуйста, подождите...',
 'pakfire system state' => 'Статус системы',
 'pakfire uninstall all' => 'Вы хотите удалить следующие пакеты?',
-'pakfire uninstall description' => 'Пожалуйста, укажите один или несколько элементов в списке ниже и нажмите минус для удаления.',
+'pakfire uninstall description' => 'Пожалуйста, выберите одно или несколько дополнений для удаления.',
 'pakfire uninstall package' => 'Вы собираетесь удалить следующие пакеты: ',
 'pakfire update daily' => 'Ежедневный поиск обновлений:',
 'pakfire updates' => 'Доступное Обновление',
diff --git a/langs/tr/cgi-bin/tr.pl b/langs/tr/cgi-bin/tr.pl
index 85dc94f91..7dd46f584 100644
--- a/langs/tr/cgi-bin/tr.pl
+++ b/langs/tr/cgi-bin/tr.pl
@@ -1862,7 +1862,7 @@
 'pakfire dependencies found' => 'Bağımlılıklar bulundu:',
 'pakfire health check' => 'Yansımanın ulaşılabilir olup olmadığını kontrol et (ping):',
 'pakfire install' => 'Yükle',
-'pakfire install description' => 'Aşağıdaki listeden bir veya daha fazla öğeyi seçtikten sonra eklemek için artı simgesine tıklayınız.',
+'pakfire install description' => 'Lütfen yüklemek için bir veya daha fazla eklenti seçin.',
 'pakfire install package' => 'Aşağıdaki paketleri yüklemek istediniz: ',
 'pakfire installed addons' => 'Kurulu eklentiler:',
 'pakfire last core list update' => 'Son çekirdek listesi güncellemesi',
@@ -1876,7 +1876,7 @@
 'pakfire resolvedeps wait' => 'Bağımlılıklar kontrol ediliyor, lütfen bekleyin...',
 'pakfire system state' => 'Sistem durumu',
 'pakfire uninstall all' => 'Aşağıdaki paketleri kaldırmak istiyor musunuz?',
-'pakfire uninstall description' => 'Aşağıdaki listeden bir veya daha fazla öğeyi seçtikten sonra kaldırmak için eksi simgesine tıklayınız.',
+'pakfire uninstall description' => 'Lütfen kaldırmak için bir veya daha fazla eklenti seçin.',
 'pakfire uninstall package' => 'Aşağıdaki paketleri kaldırmak istiyorum: ',
 'pakfire update daily' => 'Günlük güncellemeleri ara:',
 'pakfire updates' => 'Mevcut Güncellemeler',
