diff --git a/conf/type/__apt_ppa/files/remove-apt-repository b/conf/type/__apt_ppa/files/remove-apt-repository
index b57a07f6..3eb7d491 100755
--- a/conf/type/__apt_ppa/files/remove-apt-repository
+++ b/conf/type/__apt_ppa/files/remove-apt-repository
@@ -7,13 +7,19 @@
 #   1: if not
 #   2: on other error
 
-
+import os
 import sys
 from aptsources import distro, sourceslist
 from softwareproperties import ppa
 from softwareproperties.SoftwareProperties import SoftwareProperties
 
 
+def remove_if_empty(file_name):
+    with open(file_name, 'r') as f:
+        if f.read().strip():
+            return
+        os.unlink(file_name)
+
 def remove_repository(repository):
     #print 'repository:', repository
     codename = distro.get_distro().codename
@@ -21,11 +27,18 @@ def remove_repository(repository):
     (line, file) = ppa.expand_ppa_line(repository.strip(), codename)
     #print 'line:', line
     #print 'file:', file
-    source_entry = sourceslist.SourceEntry(line, file)
+    deb_source_entry = sourceslist.SourceEntry(line, file)
+    src_source_entry = sourceslist.SourceEntry('deb-src{}'.format(line[3:]), file)
 
     try:
         sp = SoftwareProperties()
-        sp.remove_source(source_entry)
+        sp.remove_source(deb_source_entry)
+        try:
+            # If there's a deb-src entry, remove that too
+            sp.remove_source(src_source_entry)
+        except:
+            pass
+        remove_if_empty(file)
         return True
     except ValueError:
         print >> sys.stderr, "Error: '%s' doesn't exists in a sourcelist file" % line