Index: FarmatikoData/FarmatikoRepo/PHRepo.cs
===================================================================
--- FarmatikoData/FarmatikoRepo/PHRepo.cs	(revision e0cdea28ddbdd8eaa0bc76096a6d1c61299ef820)
+++ FarmatikoData/FarmatikoRepo/PHRepo.cs	(revision 8eb1e217da2339e9a89c48136e790ce33cfc4fc9)
@@ -61,21 +61,15 @@
                 user.Password = pharmacyHead.Password;
             }
-            /*if (EditedPHead.Pharmacies != null)
+            foreach(var pharmacy in pharmacyHead.Pharmacies)
             {
-                if (EditedPHead.Pharmacies.Count() > 0)
-                    if (!EditedPHead.Pharmacies.Equals(pharmacyHead.Pharmacies))
-                        EditedPHead.Pharmacies = pharmacyHead.Pharmacies;
+                if (!EditedPHead.Pharmacies.Contains(pharmacy))
+                {
+                    pharmacy.PheadId = EditedPHead.Id;
+                    pharmacy.PharmacyHead = EditedPHead;
+                    EditedPHead.Pharmacies.Add(pharmacy);
+                }
             }
-            if (EditedPHead.Medicines != null)
-            {
-                if (EditedPHead.Medicines.Count() > 0)
-                {
-                    if (!EditedPHead.Medicines.Equals(pharmacyHead.Medicines))
-                        EditedPHead.Medicines = pharmacyHead.Medicines;
-                    
-                }
-                    
-            }*/
-
+            _context.Entry(EditedPHead).State = EntityState.Modified;
+            
             _context.SaveChanges();
         }
@@ -153,5 +147,5 @@
         public PharmacyHead GetPharmacyHead(string head)
         {
-            var phead = _context.PharmacyHeads.Where(x => x.Email.Equals(head)).FirstOrDefault();
+            var phead = _context.PharmacyHeads.Where(x => x.Email.Equals(head)).Include(x => x.Pharmacies).FirstOrDefault();
             return phead;
         }
Index: FarmatikoData/FarmatikoRepo/Repository.cs
===================================================================
--- FarmatikoData/FarmatikoRepo/Repository.cs	(revision e0cdea28ddbdd8eaa0bc76096a6d1c61299ef820)
+++ FarmatikoData/FarmatikoRepo/Repository.cs	(revision 8eb1e217da2339e9a89c48136e790ce33cfc4fc9)
@@ -270,6 +270,10 @@
         public async Task RemovePharmacyHead(int Id)
         {
-            var PHead = await _context.PharmacyHeads.Where(x => x.Id == Id).FirstOrDefaultAsync();
+            var PHead = await _context.PharmacyHeads.Where(x => x.Id == Id).Include(x => x.Pharmacies).Include(x => x.Medicines).FirstOrDefaultAsync();
             var user = await _context.Users.Where(x => x.Email.Equals(PHead.Email)).FirstOrDefaultAsync();
+            var PHreqs = await _context.PHRequests.Where(x => x.Head.Id.Equals(PHead.Id)).FirstOrDefaultAsync();
+            PHead.Pharmacies.Select(x => x.PheadId = null);
+            //PHead.Pharmacies.Select(x => x.PharmacyHead = null);
+            _context.PHRequests.Remove(PHreqs);
             _context.PharmacyHeads.Remove(PHead);
             _context.Users.Remove(user);
Index: FarmatikoServices/Services/PHService.cs
===================================================================
--- FarmatikoServices/Services/PHService.cs	(revision e0cdea28ddbdd8eaa0bc76096a6d1c61299ef820)
+++ FarmatikoServices/Services/PHService.cs	(revision 8eb1e217da2339e9a89c48136e790ce33cfc4fc9)
@@ -86,6 +86,7 @@
                     if (!pharmacyHead.Medicines.Equals(PHMedicines))
                     {
-                        //phead.Medicines = pharmacyHead.Medicines;
-                        if (pharmacyHead.Medicines.Count() == 0)
+                        /*
+                         * USELESS
+                         * if (pharmacyHead.Medicines.Count() == 0)
                         {
                             phead.Medicines = null;
@@ -95,5 +96,5 @@
                             _iPHRepo.DeletePHMedicine(PHMId, phId, medId);
                             return;
-                        }
+                        }*/
                         if (phead.Medicines != null && phead.Medicines.Count() > 0)
                         {
@@ -119,5 +120,5 @@
                                     Medicine = medicine
                                 };
-                                
+
                                 bool ifExists = phead.Medicines.Contains(phm);
                                 if (!ifExists)
@@ -153,28 +154,37 @@
                     }
                 }
-
                 PharmacyHead head = new PharmacyHead()
                 {
                     Name = pharmacyHead.Name,
                     Email = pharmacyHead.Email,
-                    Password = pharmacyHead.Password
+                    Password = pharmacyHead.Password,
+                    Medicines = phead.Medicines,
+                    Pharmacies = phead.Pharmacies
                 };
-
-                if (pharmacyHead.Pharmacies != null)
-                {
-                    if (pharmacyHead.Pharmacies.Count() > 0)
-                    {
-                        phead.Pharmacies = pharmacyHead.Pharmacies;
-                        head.Pharmacies = pharmacyHead.Pharmacies;
+                if (!phead.Name.Equals(head.Name) && !phead.Password.Equals(head.Email))
+                {
+                    await _iPHRepo.UpdatePharmacyHead(head);
+                }
+                List<Pharmacy> pharmacies = new List<Pharmacy>();
+                pharmacies = phead.Pharmacies;
+                if (head.Pharmacies != null && pharmacyHead.Pharmacies != null)
+                {
+                    if (head.Pharmacies.Count() > 0 && pharmacyHead.Pharmacies.Count() > 0)
+                    {
+                        foreach (var pharmacy in pharmacyHead.Pharmacies)
+                        {
+                            if (!head.Pharmacies.Contains(pharmacy))
+                            {
+                                pharmacy.PheadId = phead.Id;
+                                pharmacy.PharmacyHead = phead;
+                                pharmacies.Add(pharmacy);
+                            }
+                        }
+                        head.Pharmacies = pharmacies;
+                        await _iPHRepo.UpdatePharmacyHead(head);
                     }
                 }
-                
-                if (!phead.Equals(head))
-                {
-                    await _iPHRepo.UpdatePharmacyHead(head);
-                }
-                else throw new Exception("Cannot update pharmacy head since there was no changes.");
-            }
-            else throw new Exception("PharmacyHead has a null value.");
+            }
+            else throw new Exception("Cannot update pharmacy head since there was no changes.");
         }
         public async Task<bool> Add(PharmacyHeadDto pharmacyHead)
