--- a/src/mame/machine/lynx.cpp	2016-03-27 20:14:54.167021725 +0200
+++ b/src/mame/machine/lynx.cpp	2016-03-27 20:13:43.640353507 +0200
@@ -2048,10 +2048,8 @@
 			{
 				logerror("This image is probably a Quickload image with .lnx extension\n");
 				logerror("Try to load it with -quickload\n");
+				return IMAGE_VERIFY_FAIL;
 			}
-			else
-				logerror("This is not a valid Lynx image\n");
-			return IMAGE_VERIFY_FAIL;
 		}
 	}
 
@@ -2085,13 +2083,25 @@
 			if (lynx_verify_cart((char*)header, LYNX_CART) == IMAGE_VERIFY_FAIL)
 				return IMAGE_INIT_FAIL;
 
-			/* 2008-10 FP: According to Handy source these should be page_size_bank0. Are we using
-			 it correctly in MESS? Moreover, the next two values should be page_size_bank1. We should
-			 implement this as well */
-			gran = header[4] | (header[5] << 8);
+			if (!strncmp("LYNX", (char *)header, 4)) // image has header
+			{
+				/* 2008-10 FP: According to Handy source these should be page_size_bank0. Are we using
+			 	it correctly in MESS? Moreover, the next two values should be page_size_bank1. We should
+			 	implement this as well */
+				gran = header[4] | (header[5] << 8);
 
-			logerror ("%s %dkb cartridge with %dbyte granularity from %s\n", header + 10, size / 1024, gran, header + 42);
-			size -= 0x40;
+				logerror ("%s %dkb cartridge with %dbyte granularity from %s\n", header + 10, size / 1024, gran, header + 42);
+				size -= 0x40;
+			}
+			else
+			{
+				image.fseek ( 0, SEEK_SET );
+
+				if (size > 0xffff) // 64,128,256,512k cartridges
+					gran = size >> 8;
+				else
+					gran = 0x400; // Homebrew roms
+			}
 		}
 	}
 
