diff --git a/src/elements/lcry.c b/src/elements/lcry.c
index e570c9014..9d15c001f 100644
--- a/src/elements/lcry.c
+++ b/src/elements/lcry.c
@@ -10,9 +10,12 @@ int update_LCRY(UPDATE_FUNC_ARGS)
 			if(parts[i].life<=0)
 				parts[i].tmp = 0;
 			else
-				parts[i].life--;
+			{
+				parts[i].life-=2;
+				if(parts[i].life < 0)
+					parts[i].life = 0;
+			}	
 		}
-			
 		for (rx=-1; rx<2; rx++)
 			for (ry=-1; ry<2; ry++)
 				if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
@@ -33,9 +36,12 @@ int update_LCRY(UPDATE_FUNC_ARGS)
 			if(parts[i].life>=10)
 				parts[i].tmp = 3;
 			else
-				parts[i].life++;
+			{
+				parts[i].life+=2;
+				if(parts[i].life > 10)
+					parts[i].life = 10;
+			}
 		}
-			
 		for (rx=-1; rx<2; rx++)
 			for (ry=-1; ry<2; ry++)
 				if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
diff --git a/src/main.c b/src/main.c
index d70eb560a..16d609d31 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1034,7 +1034,7 @@ int parse_save(void *save, int size, int replace, int x0, int y0, unsigned char
 					}
 				}
 			}
-			if(ver>=67 && (ty==PT_LCRY)){
+			if(ver<67 && (ty==PT_LCRY)){
 				//New LCRY uses TMP not life
 				if(parts[i-1].life>=10)
 				{