diff --git a/src/com/android/contacts/CallDetailActivity.java b/src/com/android/contacts/CallDetailActivity.java
index d0eb817..2ecbc29 100644
--- a/src/com/android/contacts/CallDetailActivity.java
+++ b/src/com/android/contacts/CallDetailActivity.java
@@ -184,15 +184,14 @@
             // Do a query to fetch the voicemail status messages.
             VoicemailPlaybackFragment playbackFragment = new VoicemailPlaybackFragment();
             Bundle fragmentArguments = new Bundle();
-            Uri voicemailUri = getIntent().getParcelableExtra(EXTRA_VOICEMAIL_URI);
-            fragmentArguments.putParcelable(EXTRA_VOICEMAIL_URI, voicemailUri);
+            fragmentArguments.putParcelable(EXTRA_VOICEMAIL_URI, getVoicemailUri());
             if (getIntent().getBooleanExtra(EXTRA_VOICEMAIL_START_PLAYBACK, false)) {
                 fragmentArguments.putBoolean(EXTRA_VOICEMAIL_START_PLAYBACK, true);
             }
             playbackFragment.setArguments(fragmentArguments);
             getFragmentManager().beginTransaction()
                     .add(R.id.voicemail_container, playbackFragment).commit();
-            mAsyncQueryHandler.startVoicemailStatusQuery(voicemailUri);
+            mAsyncQueryHandler.startVoicemailStatusQuery(getVoicemailUri());
         } else {
             // No voicemail uri: hide the status view.
             mStatusMessageView.setVisibility(View.GONE);
@@ -200,7 +199,11 @@
     }
 
     private boolean hasVoicemail() {
-        return getIntent().getParcelableExtra(EXTRA_VOICEMAIL_URI) != null;
+        return getVoicemailUri() != null;
+    }
+
+    private Uri getVoicemailUri() {
+        return getIntent().getParcelableExtra(EXTRA_VOICEMAIL_URI);
     }
 
     /**
@@ -661,7 +664,8 @@
     }
 
     public void onMenuTrashVoicemail(MenuItem menuItem) {
-        Log.w(TAG, "onMenuTrashVoicemail not yet implemented");
+        getContentResolver().delete(getVoicemailUri(), null, null);
+        finish();
     }
 
     private void configureActionBar() {
