diff --git a/cores/arduino/main.cpp b/cores/arduino/main.cpp
index 55eef9e9c33c18675e4dae6bedd4979bb5c70084..8af01b573c529daff3d140246be7f9b31b035d5f 100644
--- a/cores/arduino/main.cpp
+++ b/cores/arduino/main.cpp
@@ -1,5 +1,5 @@
 /*
-  Copyright (c) 2014 Arduino.  All right reserved.
+  Copyright (c) 2015 Arduino LLC.  All right reserved.
 
   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
@@ -19,6 +19,11 @@
 #define ARDUINO_MAIN
 #include "Arduino.h"
 
+// Weak empty variant initialization function.
+// May be redefined by variant files.
+void initVariant() __attribute__((weak));
+void initVariant() { }
+
 /*
  * \brief Main entry point of Arduino application
  */
@@ -26,6 +31,8 @@ int main( void )
 {
   init();
 
+  initVariant();
+
   delay(1);
 #if defined(USBCON)
   USBDevice.init();