DUE problem with micros() inside interrupts

Hi,
I think I have the same problem..
I have both Arduino uno and arduino due.
I had used the function micros() inside an interrupt, and sometimes it seem not work fine in arduino due.
I would like to acquire the frequency (or time beetwen rising edge, i.e. Period) of an input signal on pin 28 (in Arduino due). The signal is a square wave 0/3.3V with PWM 50%.
For example I set the frequency to 2000Hz ( period of 500 micro second ) with a function generation.
this is the simple code:

volatile unsigned long time, Time1, Time2, Period =0;
volatile int i=0;
int Signal=28;

void setup() {
Serial.begin(9600);
pinMode(Signal,INPUT);
attachInterrupt(Signal,InterruptSegnaleGiriT,FALLING); //Interrupt on Falling Edge
}

void loop() {
if(Period<490 || Period >510){
Serial.println(Period);
Serial.println(Time1);
Serial.println(Time2);
Serial.println("");
}
void InterruptSegnaleGiriT(){
time=micros();
if(i==0){
Time1=time;
i=1;
return;
}
if(i==1){
Time2=time;
Period=(Time2-Time1);
i=0;
return;
}
}

If the function micros work fine, this code does not print anything.
The problem is that sometimes the Period print is 1500 micro.
While sometimes Period print is a number near to the limit of an unsigned long,
maybe the Time1 is greater than Time2.

I Have try to put the code on arduino uno, the code work fine!!!
Maybe is a bug on Arduino due micros...
sorry for the english..
thank