Interfacing Arduino Mega with PIC16F818 by I2C bus

I'm trying interface a Arduino Mega board (as master), with a PIC16F818 microcontroler (as slave), by I2C bus, but isn't working :'(

I've tested the communication between two arduinos by I2C, and worked. I tested the I2C communication between two PICs 16F818, and it worked too. But when I try to communicate a Arduino Mega with a PIC, it doesn't work =/

Someone have example codes for me? I've searched A LOT on the web, with no sucess...

Obs.: The hardware configuration seems ok, the Arduino Mega already has the pull-ups resistors on SDA and SCL, so I just connected both SDA, SCL and GND from Arduino and the PIC.

Please, I need help! :'(

The code I’m using on PIC16F818 (is just a ‘echo’, for test):

//#include <16F690.h>
#include <16F818.h>
#use delay(clock=8000000)
#fuses INTRC_IO, NOWDT, HS, PUT, NOPROTECT, BROWNOUT, MCLR, NOCPD
//————————————————————————————————————————————————————————————
#use i2c(SLAVE, SDA=PIN_B1, SCL=PIN_B4, address=0xA0, FORCE_HW) // I2C by Hardware
————————————————————————————————————————————————————————————
BYTE x=0, state; // I2C vars

#define LED PIN_A1

#INT_SSP
void ssp_interupt ()
{
  state = i2c_isr_state();


  if( (state < 0x80) && (state > 0) ) //Master is sending data
  {
      x = i2c_read();
  }

  if(state == 0x80)  //Master is requesting data
  {
    i2c_write (x);
    
  }

}


//————————————————————————————————————————————————————————————

void main()
{
   int i =0;
  delay_ms(200); // power up delay

  enable_interrupts(INT_SSP);
  enable_interrupts(GLOBAL);

  while(TRUE)
  {
   if (x > 0)
   {
    for (i=0; i<x; i++)
    {
      output_high(LED);
      delay_ms(200);
      output_low(LED);
      delay_ms(200);
    }

    x = 0;
    delay_ms(1000);
  }

  delay_ms(5);
  }
}
//————————————————————————————————————————————————————————————