The Second JFK and Double Dan Sullivans: A Brief History of Spoiler Candidates and the Unsuccessful Legal Challenges to Them
by The Conversation | Oct 31, 2026 | Quick Facts
The two Alaskan Dan Sullivans
The Second JFK and Double Dan Sullivans: A Brief History of Spoiler Candidates and the Unsuccessful Legal Challenges to Them
by The Conversation | Oct 31, 2026 | Quick Facts
The two Alaskan Dan Sullivans
The saga of Daniel J. Sullivan, the schoolteacher known as “Petersburg Sullivan” because of where he lives, and Sen. Dan S. Sullivan goes back longer than recent revelations.
Republished with permission from The Conversation, by Drew Kurlowski, Coastal Carolina University
Less than a week before Election Day, The New York Times reported that people with links to Alaska Democrat Mary Peltola’s U.S. Senate campaign and the Democratic Senatorial Campaign Committee had recruited a candidate to the race whose name is nearly identical to that of the incumbent Republican senator, Dan Sullivan, whom Peltola was challenging. The plan aimed to siphon votes from the incumbent senator and help Peltola win, according to the reporting.
The story has driven calls for prosecutions, lawsuits and state action. But as a political scientist who studies election law, I can say that the spoiler candidate is one of the oldest tricks in the American campaign toolbox, and the law has rarely touched it.
Early Ballots

19th-century voting usually involved casting a ballot printed by political parties, such as this electoral ticket for the Free Soil Party from 1848. Smithsonian National Museum of American History
For most of the 1800s, American elections were conducted with ballots designed and printed by the parties. There were no official ballots printed by the state.
In those days, the addition of a rival name to a party ballot by an insidious printer could swing countless votes to the opposing party. The tactic was well known, and voters were often warned to look out for the “Spurious Ticket.”
By the 1890s, the government-printed ballot had gained widespread adoption and ended the practice of counterfeit tickets. But that would not be enough to deter those who wanted to deceive voters.
Power of a Name
As observers in Alaska have noted, recruiting candidates with similar or identical names is not a new move.
In John F. Kennedy’s first congressional primary, his opponent was a city councilor named Joseph Russo. An aide to Kennedy reportedly paid a janitor with the same name to enter the race. The real Russo complained, but in the end, Kennedy took more votes in the 1946 race than the Russos combined.
Eight years later, the name Kennedy worked the other way, when a Gillette stockroom supervisor named John Francis Kennedy, no relation, was elected as a Democrat to the position of treasurer and receiver-general of Massachusetts, owing in large part to the familiarity of his name. Names can move votes, so namesakes can be worth recruiting.
Spoilers as Surrogates
Some spoiler candidates are not necessarily meant to win votes. Sometimes they are there to amplify a message.
In 1978, Republican Carroll Campbell was running for an open House seat in upstate South Carolina. His opponent was Max Heller, the mayor of Greenville and a Jewish refugee from Nazi-occupied Austria.
Days before the election, Don Sprouse, an independent running for office for the first time, held a press conference and declared that Heller was unfit for office as he had “not made clear to the voters he is not a Christian” and was “not as qualified to represent the Christian people.”
Although Campbell condemned the remarks and Sprouse received only 1,693 votes, Heller lost the race. The allegations, still unproven, of Sprouse being a “stalking-horse” for Campbell only surfaced years later, but they continued to dog Campbell when he ran for governor in 1986.
Sprouse wasn’t going to spoil the election with the votes he could win, but he could be a spoiler with his message, an antisemitic appeal that Campbell would not make directly.
Candidates Who Don’t Even Know They’re Running
A different type of ballot shenanigan skips the recruitment and simply puts candidates on the ballot.
This was the case in 2010 when two Oakland County, Michigan, Democratic officials put candidates on the ballot under the Tea Party label in three races. The candidates didn’t even know they were running.
In this case, the law did come back to bite. The county party chair and operations director were charged with perjury and forgery, but the crime was forging signatures, not their strategy.
Some state election codes specifically discuss false declarations or forged election paperwork, but many don’t contemplate this type of scheme. Forgery and perjury, however, are illegal across the country, and it’s almost impossible to put an unwitting person on the ballot without one or the other.
Alaska: No Barriers
In Alaska, this tactic can be used cheaply. There is no petition requirement to get on the ballot, just a $100 fee. Moreover, the parties can’t vet candidates in the primary. The state’s unique top-four primary system lets candidates choose their own party label.
The saga of Daniel J. Sullivan, the schoolteacher known as “Petersburg Sullivan” because of where he lives, and Sen. Dan S. Sullivan goes back longer than recent revelations.
Petersburg Sullivan filed to run as a Republican in the Senate race just three days before the deadline; state officials tried to bar him from the ballot. In June a judge said there was nothing in Alaska law to prevent him from appearing on the ballot, and the state Supreme Court subsequently agreed.
Since he couldn’t be removed, the state Division of Elections took unusual steps on their ballot design to help distinguish the two candidates. They listed Sen. Dan S. Sullivan as a Republican, marking him as the incumbent, and left Daniel J. Sullivan without a party designation. This had not been done for previous incumbents in at least a decade.
What the Law Can Do
Assuming there is no forgery of documents with an unwitting and unwilling spoiler candidate, there is little the law can do. History shows us that the real legal exposure in these cases usually lies where it most often does in politics: money.
In a 2020 Miami, Florida, race, a former state senator turned political operative was convicted of three felonies related to efforts to recruit and pay a decoy candidate with the same surname as the Democratic incumbent. In another Florida case, a local Republican Party chair was convicted in connection with a scheme to plant a progressive alternative to siphon votes from the Democratic candidate. In both cases the prosecutions focused on campaign finance crimes, not simply on putting the spoilers on the ballot.
The state of Washington is an outlier, where it is a felony to run under a rival’s surname if the intent is to confuse voters. In 2024, two Bob Fergusons were recruited by conservative activist Glen Morgan to run for governor against state Attorney General Bob Ferguson. Both opted to drop out of their race under threat of prosecution.
There is nothing comparable to these laws in Alaska, however, and whether laws like this could prevent this type of thing in a federal election is still untested. Under the Supreme Court’s decision in U.S. Term Limits v. Thornton in 1995, states cannot add their own qualifications for Congress.
Read Your Ballots!
The advice from 1860—“Watch your tickets on election day. There’s a scheme on foot …”—when newspapers urged voters to read their tickets before casting their vote, is still relevant long after the demise of the party ticket. It is unlikely that the law can solve this problem, because to do so would be to wade into the First Amendment waters of why people run for office. Regulating thought and intention is a dangerous proposition under the Constitution.
The old answer is the best one. Self-government depends less on clever rules and more on citizens paying attention. Read your ballots!
Drew Kurlowski, Associate Professor of Political Science, Coastal Carolina University
This article is republished from The Conversation under a Creative Commons license. Read the original article.
The Conversation is a nonprofit, independent news organization dedicated to unlocking the knowledge of experts for the public good. We publish trustworthy and informative articles written by academic experts for the general public and edited by our team of journalists.
Help Support Factkeepers!
{"id":null,"mode":"form","open_style":"in_place","currency_code":"USD","currency_symbol":"$","currency_type":"decimal","blank_flag_url":"https:\/\/factkeepers.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/factkeepers.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":500,"top_media_type":"none","featured_image_url":false,"featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Leave a tip","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"Factkeepers.com","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Help Support Factkeepers","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for being a supporter!","payment_confirmation_title":"Factkeepers.com","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to donate? You can change this amount to anything you would like.","initial":{"instruction_type":"normal","instruction_message":"How much would you like to donate? You can change this amount to anything you would like."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to donate? You can change this amount to anything you would like."},"invalid_curency":{"instruction_type":"error","instruction_message":"How much would you like to donate? You can change this amount to anything you would like."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to donate this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to donate this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to donate this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}
{"date_format":"F j, Y","time_format":"g:i a","wordpress_permalink_only":"https:\/\/factkeepers.com\/the-second-jfk-and-double-dan-sullivans-a-brief-history-of-spoiler-candidates-and-the-unsuccessful-legal-challenges-to-them\/","all_default_visual_states":"inherit","modal_visual_state":false,"user_is_logged_in":false,"stripe_api_key":"pk_live_40P3DgGDAHEP1QtJ0nOU4amBVl87GQiP6LNtpXpIgM209dTEvnpwJQY64VMqftnFoCJJVlDxkJGLVxPoMxsAn42G100bfKk03i7","stripe_account_country_code":"US","setup_link":"https:\/\/factkeepers.com\/wp-admin\/admin.php?page=tip-jar-wp&mpwpadmin1=welcome&mpwpadmin_lightbox=do_wizard_health_check","close_button_url":"https:\/\/factkeepers.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/closebtn.png"}