diff --git a/manifests/generic_service.pp b/manifests/generic_service.pp
index 9aaecd694..1066e30b6 100644
--- a/manifests/generic_service.pp
+++ b/manifests/generic_service.pp
@@ -49,7 +49,7 @@ define nova::generic_service(
       name    => $service_name,
       ensure  => $service_ensure,
       enable  => $enabled,
-      require => Package['nova-common'],
+      require => [Package['nova-common'], Package[$nova_title]],
     }
   }
 
diff --git a/spec/defines/nova_generic_service_spec.rb b/spec/defines/nova_generic_service_spec.rb
new file mode 100644
index 000000000..324f68c7b
--- /dev/null
+++ b/spec/defines/nova_generic_service_spec.rb
@@ -0,0 +1,32 @@
+require 'spec_helper'
+
+describe 'nova::generic_service' do
+  describe 'package should come before service' do
+    let :pre_condition do
+      'include nova'
+    end
+
+    let :params do
+      {
+        :package_name => 'foo',
+        :service_name => 'food',
+        :enabled => true
+      }
+    end
+ 
+    let :facts do
+      { :osfamily => 'Debian' }
+    end
+
+    let :title do
+      'foo'
+    end
+
+    it { should contain_service('nova-foo').with(
+      'name'    => 'food',
+      'ensure'  => 'running',
+      'enable'  => true,
+      'require' => ['Package[nova-common]', 'Package[nova-foo]']
+    )}
+  end
+end