diff --git a/src/pakfire/pakfire b/src/pakfire/pakfire
index 9935481a5..0a144c517 100644
--- a/src/pakfire/pakfire
+++ b/src/pakfire/pakfire
@@ -258,51 +258,76 @@
 		&Pakfire::getcoredb("$force");
 
 	} elsif ("$ARGV[0]" eq "upgrade") {
-		my $use_color = "";
-		my $reset_color = "";
-
-		if ("$Pakfire::enable_colors" eq "1") {
-			$reset_color = "$Pakfire::color{'normal'}";
-			$use_color = "$Pakfire::color{'lightpurple'}";
-		}
-
 		&Pakfire::message("CORE INFO: Checking for Core updates...");
-
 		### Make sure that the core db is not outdated. 
 		&Pakfire::getcoredb("noforce");
-		my %coredb = &Pakfire::coredbinfo();
 
-		if (defined $coredb{'AvailableRelease'}) {
-			&Pakfire::upgradecore();
-		} else {
-			&Pakfire::message("CORE WARN: No new Core upgrades available. You are on release ".$coredb{'Release'});
-		}
+		my %coredb = &Pakfire::coredbinfo();
+		&Pakfire::message("CORE WARN: No new Core upgrades available. You are on release ".$coredb{'Release'}) unless (defined $coredb{'AvailableRelease'});
 
 		&Pakfire::message("PAKFIRE INFO: Checking for package updates...");
 		### Make sure that the package list is not outdated. 
 		&Pakfire::dbgetlist("noforce");
 		
 		my @deps = ();
-		if (my %upgradepaks = &Pakfire::dblist("upgrade")) {
-			# Resolve the dependencies of the to be upgraded packages
-			@deps = &Pakfire::resolvedeps_recursive(keys %upgradepaks);
+		my %upgradepaks = &Pakfire::dblist("upgrade");
 
-			foreach $pak (sort keys %upgradepaks) {
-				print "${use_color}Update: $pak\nVersion: $upgradepaks{$pak}{'ProgVersion'} -> $upgradepaks{$pak}{'AvailableProgVersion'}\n";
-				print "Release: $upgradepaks{$pak}{'Release'} -> $upgradepaks{$pak}{'AvailableRelease'}${reset_color}\n";
-			}
+		# Resolve the dependencies of the to be upgraded packages
+		@deps = &Pakfire::resolvedeps_recursive(keys %upgradepaks) if (%upgradepaks);
+		&Pakfire::message("PAKFIRE WARN: No new package upgrades available.") unless (@deps);
+
+		if (defined $coredb{'AvailableRelease'} || %upgradepaks) {
+			&Pakfire::message("");
 			&Pakfire::message("");
-			&Pakfire::message("PAKFIRE UPGR: We are going to install all packages listed above.");
+			&Pakfire::message("PAKFIRE INFO: Upgrade summary:");
+			&Pakfire::message("");
+
+			if (defined $coredb{'AvailableRelease'}) {
+				&Pakfire::message("CORE INFO: Core-Update $coredb{'CoreVersion'} to install:");
+				&Pakfire::message("CORE UPGR:  Release: $coredb{'Release'} -> $coredb{'AvailableRelease'}");
+				&Pakfire::message("");
+			}
+
+			if (@deps) {
+				&Pakfire::message("PAKFIRE INFO: New dependencies to install:");
+				my $totalsize = 0;
+				foreach $pak (@deps) {
+					unless (defined $upgradepaks{$pak} || &Pakfire::isinstalled($pak) == 0) {
+						my $size = &Pakfire::getsize("$pak");
+						$totalsize += $size;
+						$size = &Pakfire::beautifysize($size);
+						&Pakfire::message("PAKFIRE INFO:  $pak \t - $size");
+					}
+				}
+				$totalsize = &Pakfire::beautifysize($totalsize);
+				&Pakfire::message("");
+				&Pakfire::message("PAKFIRE INFO: Total size: \t ~ $totalsize");
+				&Pakfire::message("");
+			}
+
+			if (%upgradepaks) {
+				&Pakfire::message("PAKFIRE INFO: Packages to upgrade:");
+				foreach $pak (sort keys %upgradepaks) {
+					&Pakfire::message("PAKFIRE UPGR:  $pak\t$upgradepaks{$pak}{'ProgVersion'}-$upgradepaks{$pak}{'Release'} -> $upgradepaks{$pak}{'AvailableProgVersion'}-$upgradepaks{$pak}{'AvailableRelease'}");
+				}
+				&Pakfire::message("");
+			}
+
 			if ($interactive) {
-			  &Pakfire::message("PAKFIRE INFO: Is this okay? [y/N]");
+				&Pakfire::message("PAKFIRE INFO: Is this okay? [y/N]");
 				my $ret = <STDIN>;
 				chomp($ret);
 				&Pakfire::logger("PAKFIRE INFO: Answer: $ret");
 				if ( $ret ne "y" ) {
-				  &Pakfire::message("PAKFIRE ERROR: Installation aborted.");
-				  exit 1;
+					&Pakfire::message("PAKFIRE ERROR: Installation aborted.");
+					exit 1;
 				}
 			}
+
+			# Perform core update
+			if (defined $coredb{'AvailableRelease'}) {
+				&Pakfire::upgradecore();
+			}
 		
 			# Download packages
 			foreach $pak (sort keys %upgradepaks) {
@@ -323,8 +348,6 @@
 			foreach $pak (sort keys %upgradepaks) {
 				&Pakfire::upgradepak("$pak");
 			}
-		} else {
-			&Pakfire::message("PAKFIRE WARN: No new package upgrades available.");
 		}
 
 	} elsif ("$ARGV[0]" eq "list") {
