diff --git a/plugins/CoreAdminHome/CustomLogo.php b/plugins/CoreAdminHome/CustomLogo.php
index 76f328e139289d4b5e7ab838cdbd0fe42becd49c..32fa636dd347d1a01bac6fceecffe98a87179278 100644
--- a/plugins/CoreAdminHome/CustomLogo.php
+++ b/plugins/CoreAdminHome/CustomLogo.php
@@ -196,18 +196,22 @@ class CustomLogo
         list($width, $height) = getimagesize($file);
         switch ($_FILES[$uploadFieldName]['type']) {
             case 'image/jpeg':
-                $image = imagecreatefromjpeg($file);
+                $image = @imagecreatefromjpeg($file);
                 break;
             case 'image/png':
-                $image = imagecreatefrompng($file);
+                $image = @imagecreatefrompng($file);
                 break;
             case 'image/gif':
-                $image = imagecreatefromgif ($file);
+                $image = @imagecreatefromgif ($file);
                 break;
             default:
                 return false;
         }
 
+        if (!is_resource($image)) {
+            return false;
+        }
+
         $targetWidth = round($width * $targetHeight / $height);
 
         $newImage = imagecreatetruecolor($targetWidth, $targetHeight);
diff --git a/plugins/CoreAdminHome/javascripts/generalSettings.js b/plugins/CoreAdminHome/javascripts/generalSettings.js
index 2efa037fd99e4d7ba25665f5fcbdeb74bb1cdb3e..5ac87afb5799ef00d2e3043b2da1d7e7f7311d70 100644
--- a/plugins/CoreAdminHome/javascripts/generalSettings.js
+++ b/plugins/CoreAdminHome/javascripts/generalSettings.js
@@ -113,6 +113,7 @@ $(document).ready(function () {
 
     $("#logoUploadForm").submit(function (data) {
         var submittingForm = $(this);
+        $('.uploaderror').fadeOut();
         var frameName = "upload" + (new Date()).getTime();
         var uploadFrame = $("<iframe name=\"" + frameName + "\" />");
         uploadFrame.css("display", "none");
@@ -123,6 +124,10 @@ $(document).ready(function () {
                 var frameContent = $(uploadFrame.contents()).find('body').html();
                 frameContent = $.trim(frameContent);
 
+                if ('0' === frameContent) {
+                    $('.uploaderror').show();
+                }
+
                 if ('1' === frameContent || '0' === frameContent) {
                     uploadFrame.remove();
                 }
diff --git a/plugins/CoreAdminHome/lang/en.json b/plugins/CoreAdminHome/lang/en.json
index 5be7675fb9a6f0a0ccbb696f2761f30eb08e6c33..cd88aca4f0a918979bdf7f204284b210cf30871a 100644
--- a/plugins/CoreAdminHome/lang/en.json
+++ b/plugins/CoreAdminHome/lang/en.json
@@ -49,6 +49,7 @@
         "JSTrackingIntro5": "If you want to do more than track page views, please check out the %1$sPiwik Javascript Tracking documentation%2$s for the list of available functions. Using these functions you can track goals, custom variables, ecommerce orders, abandoned carts and more.",
         "LogoNotWriteableInstruction": "To use your custom logo instead of the default Piwik logo, give write permission to this directory: %1$s Piwik needs write access for your logos stored in the files %2$s.",
         "FileUploadDisabled": "Uploading files is not enabled in your PHP configuration. To upload your custom logo please set %s in php.ini and restart your webserver.",
+        "LogoUploadFailed": "The uploaded file couldn't be processed. Please check if the file has a valid format.",
         "LogoUpload": "Select a Logo to upload",
         "FaviconUpload": "Select a Favicon to upload",
         "LogoUploadHelp": "Please upload a file in %s formats with a minimum height of %s pixels.",
diff --git a/plugins/CoreAdminHome/templates/generalSettings.twig b/plugins/CoreAdminHome/templates/generalSettings.twig
index c3cd7c95008e69f8508b466312b63b7bc8ef76b4..e70d537472ebe2277abe996997cbcd2d1fa1a52c 100644
--- a/plugins/CoreAdminHome/templates/generalSettings.twig
+++ b/plugins/CoreAdminHome/templates/generalSettings.twig
@@ -204,6 +204,9 @@
                 <input type="hidden" name="token_auth" value="{{ token_auth }}"/>
 
                 {% if logosWriteable %}
+                    <div class="alert alert-warning uploaderror" style="display:none;">
+                        {{ 'CoreAdminHome_LogoUploadFailed'|translate }}
+                    </div>
                     <div class="form-group">
                         <label for="customLogo">{{ 'CoreAdminHome_LogoUpload'|translate }}</label>
                         <div class="form-help">{{ 'CoreAdminHome_LogoUploadHelp'|translate("JPG / PNG / GIF", 110) }}</div>