diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 5140546..1057aeb 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -166,9 +166,9 @@
         </activity-alias>
 
         <!-- Activity stream list -->
-        <activity android:name="ActivityStreamActivity">
+        <activity android:name="SocialStreamActivity">
             <intent-filter>
-                <action android:name="com.android.contacts.action.ACTIVITY_STREAM" />
+                <action android:name="com.android.contacts.action.SOCIAL_STREAM" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.TAB" />
             </intent-filter>
diff --git a/res/layout-finger/activity_list_content.xml b/res/layout-finger/social_list_content.xml
similarity index 100%
rename from res/layout-finger/activity_list_content.xml
rename to res/layout-finger/social_list_content.xml
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 982479e..2e5b559 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -319,8 +319,8 @@
     <!-- Section header in the Edit Contacts screen for the "Add more items" button -->
     <string name="listSeparatorMore_edit">More</string>
 
-    <!-- The description text for the activity stream tab. Space is limited for this string, so the shorter the better -->
-    <string name="activityStreamIconLabel">Stream</string>
+    <!-- The description text for the social activity stream tab. Space is limited for this string, so the shorter the better -->
+    <string name="socialStreamIconLabel">Social</string>
 
     <!-- The description text for the contacts tab. Space is limited for this string, so the shorter the better -->
     <string name="contactsIconLabel">Contacts</string>
diff --git a/src/com/android/contacts/ContactsActivity.java b/src/com/android/contacts/ContactsActivity.java
index d78d19c..06254d3 100644
--- a/src/com/android/contacts/ContactsActivity.java
+++ b/src/com/android/contacts/ContactsActivity.java
@@ -64,8 +64,8 @@
         mTabHost.setOnTabChangedListener(this);
 
         // Setup the tabs
-        setupActivityStreamTab();
         setupContactsTab();
+        setupSocialStreamTab();
         setupFavoritesTab();
 
         setCurrentTab(intent);
@@ -89,13 +89,13 @@
         }
     }
 
-    private void setupActivityStreamTab() {
+    private void setupSocialStreamTab() {
         // Just a placeholder for now
-        Intent intent = new Intent("com.android.contacts.action.LIST_DEFAULT");
-        intent.setClass(this, ActivityStreamActivity.class);
+        Intent intent = new Intent("com.android.contacts.action.SOCIAL_STREAM");
+        intent.setClass(this, SocialStreamActivity.class);
 
-        mTabHost.addTab(mTabHost.newTabSpec("stream")
-                .setIndicator(getText(R.string.activityStreamIconLabel),
+        mTabHost.addTab(mTabHost.newTabSpec("social")
+                .setIndicator(getText(R.string.socialStreamIconLabel),
                         getResources().getDrawable(R.drawable.ic_tab_contacts))
                 .setContent(intent));
     }
diff --git a/src/com/android/contacts/ActivityStreamActivity.java b/src/com/android/contacts/SocialStreamActivity.java
similarity index 89%
rename from src/com/android/contacts/ActivityStreamActivity.java
rename to src/com/android/contacts/SocialStreamActivity.java
index 0440864..8917fb4 100644
--- a/src/com/android/contacts/ActivityStreamActivity.java
+++ b/src/com/android/contacts/SocialStreamActivity.java
@@ -20,13 +20,13 @@
 import android.os.Bundle;
 import android.widget.ArrayAdapter;
 
-public class ActivityStreamActivity extends ListActivity {
+public class SocialStreamActivity extends ListActivity {
 
     @Override
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
-        setContentView(R.layout.activity_list_content);
+        setContentView(R.layout.social_list_content);
 
         setListAdapter(new ArrayAdapter<String>(this,
                 android.R.layout.simple_list_item_1));
