diff --git a/src/bamToBed/bamToBed.cpp b/src/bamToBed/bamToBed.cpp
index 432a0f6398a2bced6e55b328a7051c706dbd20cb..c89441a02a6c387bb5075ae028ee06a319a7db8f 100644
--- a/src/bamToBed/bamToBed.cpp
+++ b/src/bamToBed/bamToBed.cpp
@@ -479,13 +479,26 @@ void PrintBed(const BamAlignment &bam,  const RefVector &refs,
         unsigned int i;
         for (i = 0; i < bedBlocks.size(); ++i) {
             BED curr = bedBlocks[i];
-            printf("%s\t%d\t%d\t\%s\t%d\t%s\n", 
-                   chrom.c_str(), 
-                   curr.start,
-                   curr.end,
-                   name.c_str(),
-                   bam.MapQuality,
-                   strand.c_str());
+
+            if (bamTag == "") {
+                printf("%s\t%d\t%d\t\%s\t%d\t%s\n", 
+                       chrom.c_str(), 
+                       curr.start,
+                       curr.end,
+                       name.c_str(),
+                       bam.MapQuality,
+                       strand.c_str());
+            }
+            else {
+                cout << chrom << "\t"
+                     << bam.Position << "\t"
+                     << curr.start << "\t"
+                     << curr.end << "\t"
+                     << name << "\t"
+                     << PrintTag(bam, bamTag) << "\t"
+                     << strand
+                     << endl;            
+            }
         }
     }
 }