diff --git a/vcard.admin.inc b/vcard.admin.inc
index fac9772..6d16994 100644
--- a/vcard.admin.inc
+++ b/vcard.admin.inc
@@ -16,6 +16,21 @@ function vcard_admin_settings() {
   $options = array('' => t('<Select a property>'));
   $options = $options + _vcard_properties();
   $profile_fields = _vcard_profile_fields();
+  
+  
+  $form['vcard_use_profile'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Use Legacy Profile Fields'),
+    '#default_value' => variable_get('vcard_use_profile', FALSE),
+    '#description' => t('Should vCard use legacy Profile Fields instead of Account fields in Core.'),
+  );
+  
+  if (!module_exists('profile')) {
+    $form['vcard_use_profile']['#disabled'] = TRUE;
+    $form['vcard_use_profile']['#default_value'] = FALSE;
+    $form['vcard_use_profile']['#description'] = t('Only Account Fields are allowed unless Profile module is enabled');
+  }
+  
   $form['field_mappings'] = array(
     '#type' => 'fieldset',
     '#title' => t('Field Mappings'),
diff --git a/vcard.info b/vcard.info
index 1278e9f..885524e 100644
--- a/vcard.info
+++ b/vcard.info
@@ -1,6 +1,5 @@
 name = vCard
 description = "Allows vcard export of user data"
-dependencies[] = profile
 core = 7.x
 files[] = vcard.module
 files[] = vcard.admin.inc
diff --git a/vcard.install b/vcard.install
new file mode 100644
index 0000000..326dd53
--- /dev/null
+++ b/vcard.install
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * @file
+ * vCard is a file format standard for electronic business cards.
+ *
+ * Install / Uninstall / Update Settings
+ */
+
+/**
+* Sets new Profile vs Account setting checkbox to use Profile fields for backwards compatability
+*/
+function vcard_update_7101(&$sandbox) {
+  //Default existing installations to use Profile Module
+  variable_set('vcard_use_profile', TRUE);
+}
+
diff --git a/vcard.module b/vcard.module
index eff9ad8..d57bbc4 100644
--- a/vcard.module
+++ b/vcard.module
@@ -128,7 +128,7 @@ function vcard_permission_check() {
  * 
  * Adds a vcard icon and link to the user page
  */
-function vcard_user_view(&$account) {
+function vcard_user_view($account) {
   // Check permissions
   if (user_access('have vcard', $account) && vcard_permission_check() && _vcard_init()) {
     // Attach vCard to profile
@@ -292,13 +292,21 @@ function _vcard_properties() {
  */
 function _vcard_profile_fields($value = 'name') {
   $field_list = array();
-  // Use the profile.module internals to retrieve an enumeration of available fields.
-  // Avoid getting at the DB directly.
-  $categories = profile_user_categories();
-  foreach ($categories as $category_def) {
-    $field_lookup = _profile_get_fields($category_def['name']);
-    foreach ($field_lookup as $field) {
-      $field_list[$field->name] = $field->title;
+  if (variable_get('vcard_use_profile', FALSE)) {
+    // Use the profile.module internals to retrieve an enumeration of available fields.
+    // Avoid getting at the DB directly.
+    $categories = profile_user_categories();
+    foreach ($categories as $category_def) {
+      $field_lookup = _profile_get_fields($category_def['name']);
+      foreach ($field_lookup as $field) {
+        $field_list[$field->name] = $field->title;
+      }
+    }
+  } else {
+    //Use D7 Fields
+    $user_fields = field_info_instances('user', 'user');
+    foreach ($user_fields as $user_field) {
+      $field_list[$user_field['field_name']] = $user_field['label'];
     }
   }
   return $field_list;
@@ -313,7 +321,21 @@ function _vcard_get_map($account) {
   foreach ($profile_fields as $field_name => $field_label) {
     $mapped = variable_get('vcard_profile_' . $field_name, 0);
     if ($mapped) {
-      $map[$mapped] = $account->{$field_name};
+      if (isset($account->{$field_name})) {
+        //Use fields off the Profile Module
+        if (variable_get('vcard_use_profile', FALSE)) {
+          $map[$mapped] = $account->{$field_name};
+        } else {
+          //See if there is a safe value we can use
+          if (array_key_exists('und', $account->{$field_name}) &&  $account->{$field_name}['und']) {
+            if (array_key_exists('safe_value', $account->{$field_name}['und'][0])) {
+              $map[$mapped] = $account->{$field_name}['und'][0]['safe_value'];
+            } else {
+              $map[$mapped] = $account->{$field_name}['und'][0]['value'];
+            }
+          }
+        }
+      }      
     }
   }
   return $map;
@@ -378,6 +400,11 @@ function vcard_get_raw($account) {
  */
 function template_preprocess_vcard(&$variables) {
   $account = $variables['account'];
+
+  //First set all variables to blank in case they are not mapped:
+  foreach(_vcard_properties() as $field => $title) {
+    $variables[$field] = '';
+  }
   
   $vcard_raw = vcard_get_raw($account);
   foreach ($vcard_raw as $key => $value) {
