diff --git a/Marlin/.gitignore b/Marlin/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..37a3c9b84d0356a5f579813e05d846711259f35f
--- /dev/null
+++ b/Marlin/.gitignore
@@ -0,0 +1,2 @@
+*.o
+applet/
diff --git a/Marlin/Makefile b/Marlin/Makefile
index 7c039be5715a9a44ea8fc5bb08d946a06fafc15d..9e41c28d33b26e94b2d9ff6f977301287a78cf1a 100644
--- a/Marlin/Makefile
+++ b/Marlin/Makefile
@@ -138,6 +138,8 @@ all: build sizeafter
 build: elf hex 
 
 applet/$(TARGET).cpp: $(TARGET).pde $(MAKEFILE)
+
+applet/%.cpp: %.pde
 # Here is the "preprocessing".
 # It creates a .cpp file based with the same name as the .pde file.
 # On top of the new .cpp file comes the WProgram.h header.
@@ -145,11 +147,11 @@ applet/$(TARGET).cpp: $(TARGET).pde $(MAKEFILE)
 # Then the .cpp file will be compiled. Errors during compile will
 # refer to this new, automatically generated, file. 
 # Not the original .pde file you actually edit...
-	@echo "  WR    applet/$(TARGET).cpp"
-	@test -d applet || mkdir applet
-	@echo '#include "WProgram.h"' > applet/$(TARGET).cpp
-	@cat $(TARGET).pde >> applet/$(TARGET).cpp
-	@cat $(ARDUINO)/main.cpp >> applet/$(TARGET).cpp
+	@echo "  WR    $@"
+	@test -d $(dir $@) || mkdir $(dir $@)
+	@echo '#include "WProgram.h"' > $@
+	@cat $< >> $@
+	@cat $(ARDUINO)/main.cpp >> $@
 
 elf: applet/$(TARGET).elf
 hex: applet/$(TARGET).hex
diff --git a/Marlin/Marlin.pde b/Marlin/Marlin.pde
index 93c3a7185f907bf22481bcec5b05d88439bd2872..3d906cc0ac04f171c751a0d2ca13bb2be8e4b4f7 100644
--- a/Marlin/Marlin.pde
+++ b/Marlin/Marlin.pde
@@ -252,6 +252,16 @@ void setup()
   MYSERIAL.begin(BAUDRATE);
   SERIAL_PROTOCOLLNPGM("start");
   SERIAL_ECHO_START;
+
+  // Check startup - does nothing if bootloader sets MCUSR to 0
+  byte mcu = MCUSR;
+  if(mcu & 1) SERIAL_ECHOLNPGM("PowerUp");
+  if(mcu & 2) SERIAL_ECHOLNPGM("External Reset");
+  if(mcu & 4) SERIAL_ECHOLNPGM("Brown out Reset");
+  if(mcu & 8) SERIAL_ECHOLNPGM("Watchdog Reset");
+  if(mcu & 32) SERIAL_ECHOLNPGM("Software Reset");
+  MCUSR=0;
+
   SERIAL_ECHOPGM("Marlin: ");
   SERIAL_ECHOLNPGM(VERSION_STRING);
   #ifdef STRING_VERSION_CONFIG_H