I successfully made these c2dm implementations work on my app.

I have a problem when the c2dm messages are not received suddenly by the device. 
This time it gives me permission denial which I am confused about:

> 
> Permission Denial: receiving Intent {  
> 
>  act=com.google.android.c2dm.intent.REGISTRATION cat=[myapp.android]
>  (has extras) } to myapp.android requires
>  myapp.android.permission.C2D\_MESSAGE due to sender
>  com.google.android.location (uid 10037)
> 
> 
> 

It happened to me the second time now, I can't just tell my users that they need to perform factory reset when they didn't receive any command.
Has anyone here encounter similar issue? Any help or insights and causes would be much appreciated.

manifest.xml as requested

---

```
   <receiver
        android:name="myapp.EmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

            <category android:name="myapp" />
        </intent-filter>
    </receiver>

```

...

```
<uses-permission android:name="myapp.android.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.INTERNET" />

```