diff --git a/manifests/os/debian.pp b/manifests/os/debian.pp
index 6554c0af419a891f878193d7a4acb17f74e85868..1d8fa83661012eeaea654e7df3e1ed4578d58224 100644
--- a/manifests/os/debian.pp
+++ b/manifests/os/debian.pp
@@ -84,6 +84,23 @@ class base::os::debian (
     'stanford-server': ensure => present;
   }
 
+  # This next stanza uses the PuppetForge module puppet/alternatives to
+  # set the correct puppet-backend script.
+  case $facts['os']['distro']['codename'] {
+    'wheezy', 'jessie': {
+      alternatives { 'puppet-backend':
+        path => '/usr/sbin/puppet-backend3',
+        require => Package['stanford-server'],
+      }
+    }
+    default: {
+      alternatives { 'puppet-backend':
+        path => '/usr/sbin/puppet-backend5',
+        require => Package['stanford-server'],
+      }
+    }
+  }
+
   # libstdc++5 and smbios-utils are required for Dell firmware updates, so
   # install them on physical machines.
   if $::virtual == 'vmware' {