If a signed-in customer purchases a virtual product only and chooses PayPal as their payment method, when they arrive at the PayPal "Choose a way to pay" page the only fields that are populated on the PayPal guest form are their email address and phone number.

The PayPal log associated with this sandbox transaction contains

Code:
=================================

Mar-28-2012 15:38:02 (1332941882)
ec-step1-addr_check
cart contents is virtual and customer is logged in ... therefore options['NOSHIPPING']=1
=================================
which, I'm guessing, is the root of the problem.

Is there any way to get the signed-in customer's address entries populated at PayPal so that they don't have to re-enter all that information again if they choose to use the guest-mode checkout?

Here are my PayPal express settings in my admin:

Code:
Enable this Payment Module
True

Sort order of display.
0

Payment Zone
--none--

Express Checkout Shortcut Button
Off

Set Order Status
Reservation Confirmed [2]

Set Unpaid Order Status
Reservation Requested [1]

Set Refund Order Status
Reservation Cancelled [6]

Express Checkout: Require Confirmed Address
Yes

Express Checkout: Select Cheapest Shipping Automatically
Yes

Express Checkout: Skip Payment Page
Yes

Express Checkout: Automatic Account Creation
Yes

Payment Action
Final Sale

Transaction Currency
Only USD

Store (Brand) Name at PayPal


Allow eCheck?
Instant Only

PayPal Page Style
Primary

API Signature -- Username
*****

API Signature -- Password
**********

API Signature -- Signature Code
****************

PayPal Mode
PayPal

Live or Sandbox
sandbox

Debug Mode
Log File
I have made the change described in this post to my copy of paypalwpp.php.