diff --git a/css/mediaboxBlack.css b/css/mediaboxBlack.css
index 9213688..752c704 100644
--- a/css/mediaboxBlack.css
+++ b/css/mediaboxBlack.css
@@ -38,9 +38,21 @@
 	-khtml-box-shadow: 0px 5px 20px rgba(0,0,0,0.50);
 	-moz-box-shadow: 0px 5px 20px rgba(0,0,0,0.50);
 	box-shadow: 0px 5px 20px rgba(0,0,0,0.50);
+	width: 100%;
+	height: 100%;
 }
 #mbCenter img{
+	width:auto;
+	height:auto;
+	max-width:100%;
+	max-height:95%;
 	border-radius: 4px;
+	image-orientation: from-image;
+	position: absolute;
+	margin: auto;
+	top: 0;
+	left: 0;
+	right: 0;
 }
 
 #mbCenter.mbLoading {
diff --git a/css/mediaboxWhite.css b/css/mediaboxWhite.css
index de9d439..832911e 100644
--- a/css/mediaboxWhite.css
+++ b/css/mediaboxWhite.css
@@ -38,10 +38,22 @@
 	-khtml-box-shadow: 0px 5px 20px rgba(0,0,0,0.50);
 	-moz-box-shadow: 0px 5px 20px rgba(0,0,0,0.50);
 	box-shadow: 0px 5px 20px rgba(0,0,0,0.50);
+	width: 100%;
+	height: 100%;
 }
 
 #mbCenter img{
+	width:auto;
+	height:auto;
+	max-width:100%;
+	max-height:95%;
 	border-radius: 4px;
+	image-orientation: from-image;
+	position: absolute;
+	margin: auto;
+	top: 0;
+	left: 0;
+	right: 0;
 }
 
 #mbCenter.mbLoading {
diff --git a/js/mediabox1.5.4.js b/js/mediabox1.5.4.js
index 821e599..e47a138 100644
--- a/js/mediabox1.5.4.js
+++ b/js/mediabox1.5.4.js
@@ -815,6 +815,16 @@ var Mediabox;
 		if (mediaType == "img"){
 			mediaWidth = preload.width;
 			mediaHeight = preload.height;
+
+		// Hack jn@hz6.de: make lightbox squared to make room for the image (that will be properly rotated by the browser [at least FF since v26])
+		if (mediaWidth > mediaHeight) {
+                	mediaHeight = mediaWidth
+		}
+
+                if (mediaWidth < mediaHeight) {
+                	mediaWidth = mediaHeight
+		}
+
 			if (options.imgBackground) {
 				media.setStyles({backgroundImage: "url("+URL+")", display: ""});
 			} else {	// Thanks to Dusan Medlin for fixing large 16x9 image errors in a 4x3 browser
@@ -827,11 +837,14 @@ var Mediabox;
 					mediaHeight = preload.height = parseInt((mediaWidth/preload.width)*mediaHeight, 10);
 					preload.width = mediaWidth;
 				}
+
 				if (Browser.ie) preload = document.id(preload);
 				if (options.clickBlock) preload.addEvent('mousedown', function(e){ e.stop(); }).addEvent('contextmenu', function(e){ e.stop(); });
+
 				media.setStyles({backgroundImage: "none", display: ""});
 				preload.inject(media);
 			}
+
 //			mediaWidth += "px";
 //			mediaHeight += "px";
 		} else if (mediaType == "inline") {
@@ -973,4 +986,4 @@ Mediabox.scanPage = function() {
 	});
 };
 
-window.addEvents({domready: Mediabox.scanPage, resize: Mediabox.recenter}); // to recenter the overlay while scrolling, add "scroll: Mediabox.recenter" to the object
\ No newline at end of file
+window.addEvents({domready: Mediabox.scanPage, resize: Mediabox.recenter}); // to recenter the overlay while scrolling, add "scroll: Mediabox.recenter" to the object
