Pagination not working in secondary query

The solution:

<?php // building query
    $zephyr_cat = get_post_meta($post->ID, 'zephyr_category', true);
    $paged = is_front_page() ? get_query_var( 'page' ) : get_query_var( 'paged' );
    if ( $zephyr_cat == 0 ) { 
        $zephyr_q = new WP_query('posts_per_page=".get_option("posts_per_page') . '&paged=' . $paged);
    } else {
        $zephyr_q = new WP_query('cat=".$zephyr_cat . "&paged=' . $paged); }

The explanation: the previous code was missing the $paged variable, which should have been integrated into the query. Otherwise WP doesn’t know which posts to show on which page.