diff -r 2b675370fe15 src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml	Wed Apr 13 14:55:05 2016 +0200
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml	Thu Apr 14 18:34:24 2016 -0500
@@ -96,6 +96,18 @@
 <!--AEEE1CC09911480D85EC2DA39BD06969-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--AEEE1CC09911480D85EC2DA39BD06969--></AD_MESSAGE>
 
+<!--B6F821DC4F444AFAA1059A988975ADA5--><AD_MESSAGE>
+<!--B6F821DC4F444AFAA1059A988975ADA5-->  <AD_MESSAGE_ID><![CDATA[B6F821DC4F444AFAA1059A988975ADA5]]></AD_MESSAGE_ID>
+<!--B6F821DC4F444AFAA1059A988975ADA5-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--B6F821DC4F444AFAA1059A988975ADA5-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--B6F821DC4F444AFAA1059A988975ADA5-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--B6F821DC4F444AFAA1059A988975ADA5-->  <VALUE><![CDATA[OBDISC_DiscServicesLinkedProduct]]></VALUE>
+<!--B6F821DC4F444AFAA1059A988975ADA5-->  <MSGTEXT><![CDATA[It is not possible to include in a pack, a service configured as linked to product]]></MSGTEXT>
+<!--B6F821DC4F444AFAA1059A988975ADA5-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--B6F821DC4F444AFAA1059A988975ADA5-->  <AD_MODULE_ID><![CDATA[B0801CBD73C74727AA4E27E8B2C206F6]]></AD_MODULE_ID>
+<!--B6F821DC4F444AFAA1059A988975ADA5-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--B6F821DC4F444AFAA1059A988975ADA5--></AD_MESSAGE>
+
 <!--C78ECEA720F9447A894C5023E261B52B--><AD_MESSAGE>
 <!--C78ECEA720F9447A894C5023E261B52B-->  <AD_MESSAGE_ID><![CDATA[C78ECEA720F9447A894C5023E261B52B]]></AD_MESSAGE_ID>
 <!--C78ECEA720F9447A894C5023E261B52B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 2b675370fe15 src/org/openbravo/retail/discounts/event/MOfferProductEventHandler.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/org/openbravo/retail/discounts/event/MOfferProductEventHandler.java	Thu Apr 14 18:34:24 2016 -0500
@@ -0,0 +1,82 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html 
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License. 
+ * The Original Code is Openbravo ERP. 
+ * The Initial Developer of the Original Code is Openbravo SLU 
+ * All portions are Copyright (C) 2016 Openbravo SLU 
+ * All Rights Reserved. 
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+
+package org.openbravo.retail.discounts.event;
+
+import javax.enterprise.event.Observes;
+
+import org.openbravo.base.exception.OBException;
+import org.openbravo.base.model.Entity;
+import org.openbravo.base.model.ModelProvider;
+import org.openbravo.client.kernel.event.EntityDeleteEvent;
+import org.openbravo.client.kernel.event.EntityNewEvent;
+import org.openbravo.client.kernel.event.EntityPersistenceEventObserver;
+import org.openbravo.client.kernel.event.EntityUpdateEvent;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.erpCommon.utility.Utility;
+import org.openbravo.model.pricing.priceadjustment.Product;
+import org.openbravo.service.db.DalConnectionProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Checks in M_Offer_Product table
+ * 
+ */
+public class MOfferProductEventHandler extends EntityPersistenceEventObserver {
+  private static Logger log = LoggerFactory.getLogger(MOfferProductEventHandler.class);
+  private static Entity[] entities = { ModelProvider.getInstance().getEntity(Product.ENTITY_NAME) };
+
+  @Override
+  protected Entity[] getObservedEntities() {
+    return entities;
+  }
+
+  public void onUpdate(@Observes EntityUpdateEvent event) {
+    if (!isValidEvent(event)) {
+      return;
+    }
+    final Product discProduct = (Product) event.getTargetInstance();
+    if (discProduct.getPriceAdjustment().getDiscountType().getId()
+        .equals("BE5D42E554644B6AA262CCB097753951")
+        && discProduct.getProduct().isLinkedToProduct()) {
+      throw new OBException(Utility.messageBD(new DalConnectionProvider(false),
+          "OBDISC_DiscServicesLinkedProduct", OBContext.getOBContext().getLanguage().getLanguage()));
+    }
+  }
+
+  public void onNew(@Observes EntityNewEvent event) {
+    if (!isValidEvent(event)) {
+      return;
+    }
+    final Product discProduct = (Product) event.getTargetInstance();
+    if (discProduct.getPriceAdjustment().getDiscountType().getId()
+        .equals("BE5D42E554644B6AA262CCB097753951")
+        && discProduct.getProduct().isLinkedToProduct()) {
+      throw new OBException(Utility.messageBD(new DalConnectionProvider(false),
+          "OBDISC_DiscServicesLinkedProduct", OBContext.getOBContext().getLanguage().getLanguage()));
+    }
+  }
+
+  public void onDelete(@Observes EntityDeleteEvent event) {
+    if (!isValidEvent(event)) {
+      return;
+    }
+  }
+}
